1.JDK,JRE,JVM
JDK | 开发工具包 |
JRE | 运行环境 |
JVM | 虚拟机 |
2.数据类型
byte | -2^7 ~ 2^7-1 | 0 |
short | -2^15 ~ 2^15-1 | 0 |
int | -2^31 ~ 2^31-1 | 0 |
long | -2^63 ~ 2^63-1 | 0 |
float | 0.0f | |
double | 0.0 | |
char | [0,65535] | "\u0000" |
boolean | (0,1) | false |
3.&&与&的区别
- &&是短路与,只要第一个表达式满足了整个表达式的数值,后边的不再进行
- &无论什么情况,后边的表达式都要进行
- &&比&效率高
4.break和continue区别
- break跳出整个循环体
- continue跳出当前次的语句块
5.方法重载的条件
- 同一个类,同一个方法名
- 参数列表不同,参数个数,参数顺序,参数数据类型
- 只要返回值类型不同不构成方法的重载
6.方法重写的条件
- 父与子之间,必须要有继承
- 方法名相同,参数列表也相同,方法体不同
- 访问权限修饰符不能比父类更严格
7.三大基本特征
- 封装
类内 | 包内 | 子类 | 任意 | |
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
default | √ | √ | ||
private | √ |
- 继承
子类继承父类中所有的属性和除了构造方法以外的方法
子类调用父类构造器(创建对象时执行初始化)
内存中创建对象的顺序,先父后子
- 多态
构成多态的条件:有继承,有方法重写,父类引用指向子类对象
赋值多态:Animal a = new Dog();
传参多态:public void foo(Animal a){}
8.final
- 修饰常量不能被二次赋值
- 修饰类不能被子类继承
- 修饰方法不能被子类重写
9.抽象类和接口的区别
抽象类只能单继承,接口可以多实现
10.String,StringBuilder,StringBuffer区别
效率:String < StringBuffer <StringBulider
安全:String不可变长字符串
StringBuffer可变长数组,线程安全,加了线程锁
StringBulider可变长数组,线程非安全
11.ArrayList,LinkeList,Vector区别
- ArrayList:可变长数组,查询快,增删改慢,操作连续的内存空间,效率高,线程非安全
- LinkedList:双向循环链表,查询慢,增删改快,操作链表,效率高,线程非安全
- Vector:可变长数组,效率低,线程安全,极少使用
12.List,Set,Map区别
- List:添加有序,Iterator it = list.iterator();
- Set:添加后无序,HashSet由Hash算法实现,Key不重复 add,remove TreeSet有序
- Map:key不能重复,遍历的时候使用Set <Entry<k,v>> entrySet = map.entrySet(); put remove
13.遍历List
- 普通for:for(int i = 0;i<list.size();i++){} 可以循环修改容器中的元素
- 增强for:for(String value:list){} 只能迭代不能修改
- iterator迭代器:Iterator<String> it = strList.iterator(); where(it.hasNext()){}
- forEach:strList.forEach(str -> {})
14.list常用方法
size(),get(int index),remove(index),clean(),set(index,_)
15.异常
- 运行时异常
RuntimeException类及子类,为不检查异常,一般为程序错误
- 检查性异常
RuntimeException以外的异常,属于Exception类及子类,必须处理的异常
16.throws,throw区别
- throws定义在方法名后边,调用者必须用try...catch处理
- throw定义在方法体内,用来创建异常(自定义异常)
17.多线程实现方法
- extends thread类,重写run方法
- implement Runnable接口,重写run方法
- 实现Callable,重写call方法,配合FutureTask
- 基于线程池构建线程
18.Java中线程的状态
- 操作系统层面:new Runnable waiting ready terminated
- Java中定义的:new Runnable blocked waiting time_waiting terminated