Java基础内容,java基础
Java基础内容,java基础
只是简单的列一个大纲。
1、Java的跨平台原理
java通过不同的系统,不同的版本,不同位数的java虚拟机(JVM)来屏蔽不同系统的指令集差异而对外提供统一
接口(Java API),普通java开发者只需要按照接口开始即可。当系统部署到不同版本的系统上,只需要安装系统对应版本的
java虚拟机即可。
2、搭建开发环境的步骤
1、适合开发环境的JDK,配置环境变量,JAVA_HOME,eclipse和tomcat会依赖这个变量
2、适应开发环境的编辑器(idea,eclipse)
3、需要Web服务器(tomcat)
3、基本数据类型:java中一共有8中基本数据类型,4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型,1种用于表示真值的Boolean类型,1字节==32位
1.整型
类型 存储需求 bit数 取值范围 备注
int 4字节 4*8
short 2字节 2*8 -32768~32767
long 8字节 8*8
byte 1字节 1*8 -128~127
2.浮点型
类型 存储需求 bit数 取值范围 备注
float 4字节 4*8 float类型的数值有一个后缀F(例如:3.14F)
double 8字节 8*8 没有后缀F的浮点数值(如3.14)默认为double类型
3.char类型
类型 存储需求 bit数 取值范围 备注
char 2字节 2*8
4.boolean类型
类型 存储需求 bit数 取值范围 备注
boolean 1字节 1*8 false、true
4、面向对象的特性:继承、封装、多态(举例说明)
5、基本数据类型和包装类型
装箱:把基本数据类型转换成包装类型
自动装箱:Integer a = 10,编译时会调用Integer.valueOf(10)装箱
自动拆箱:int b = a,编译时会调用a.intValue()拆箱
拆箱:把包装类型转换成基本数据类型
基本数据类型不具备面向对象的特性(包装类型封装了一些方法)
缓存值:Integer缓存-128到127的值
6、“==”与equals方法的比较
1、“==”比较两个变量的值是否相等,变量可以是基本数据类型,可以是引用类型。如果是基本数据类型,直接比较的是
变量的值,引用类型比较的是比较的是对应引用的内存的首地址。
2、equals比较的是两个对象的某些特征是否一样,一般需要重写equals方法
7、String、StringBuilder、StringBuffer
String:final修饰,内容不可变。底层是使用不可变的数据(final char[])
StringBuilder:内容可变,线程不安全
StringBuffer:内容可变,线程安全
8、集合:Collection、Map
List:有序,可重复
Set:无序,不可重复。根据equals和hashcode判断,如果一个对象要存储到set中必须重写 equals和hashCode方法
Map:以key-value形式存储数据
9、ArrayList和LinkedList
ArrayList:底层使用数组,查询速度快,增加和删除慢。数组在内存中是一块连续的内存,插入和删除需要移动内存。
LinkedList:底层使用链表,查询效率低,插入和删除效率高,只需要改变引用指向即可。
10、HashMap和HashTable
1、都用以key-value形式存储数据
2、HashMap:线程不安全,效率高
3、HashTable:线程安全,效率低
4、ConcurrentHashMap:线程安全,效率高。原理,将整个Map分成多个Segment(类似HashTable),存在多个锁,
默认提升16倍效率。
11、实现一个拷贝文件的工具类使用字节流还是字符流
1、字符流传递的是字符,字节流传递的是二级制文件
2、由于拷贝的文件不确定性只包含字符,可能拷贝图片、视频等字节流文件,为了通用性,使用字节流
12、多线程基础
1、实现方式:
继承Thread类,重写run()方法
实现Runnable接口,实现run方法()
2、调用方式
调用start()方法启动线程,执行run()方法
3、thread.setName("设置一个线程名称");
13、线程并发库
1、 java通过Executors提供四种线程池,分别为:
newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可
回收,则新建线程。
newFixedThreadPool:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool:创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor:创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证虽有任务
按照指定顺序(FIFO,UFO 优先级)执行。
2、线程池的作用:限制线程的个数,不会导致由于线程过多导致系统执行缓慢或奔溃
14、设计模式
1、常用:单例模式、工厂模式、代理模式、包装模式
2、单例模式:饱汉模式,饿汉模式
相关文章
- 暂无相关文章
用户点评