Java SE相关知识
1.switch语句可以作用在int类型上,byte,short,char可以隐形的转换成int,所以也支持,但是不支持long类型。java7开始支持String类型
2.char型变量可以存储一个汉字,因为汉子占两个字节,char型变量也是两个字节,但是一些不在unicode编码中的汉字无法用char表示
3.使用final关键字修饰一个变量时,对应的引用地址不能改变,但是引用的对象可以改变
4.== 比较的是地址,equals比较的是值
5.静态变量和实例变量的区别:从语法上看,静态变量前多了个static修饰;从程序运行上来看,实例变量是某个对象的属性,与对象相关,静态变量与类相关
6.构造器Constructor不能被继承,因此不能被重写Override,但可以被重载Overload
7.抽象类和普通类区别就是抽象类不能创建实例对象和抽象类允许有abstract方法
8.写clone()方法通常要使用super.clone(),先把父类的成员复制到位,然后才复制自己的成员
9.抽象类和接口的区别,语法区别:
抽象类可以有构造方法,接口中不能有构造方法;
抽象类中可以有普通成员变量,接口中没有普通成员变量;抽象类中可以包含非抽象的普通方法,接口中都是抽象方法;抽象类的访问类型可以是public,protected,default,接口中只能是public;抽象类中可以包含静态方法,接口中不能;一个类可以实现多接口,但是只能继承一个抽象类。
从设计层面上来说,抽象类是对一个事物的抽象,即对类抽象,而接口是对行为的抽象。
10. finally在return之后执行
11.final, finally, finalize的区别:
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承
finally是异常处理语句结构的一部分,表示总是执行
finalize是Object类的一个方法,在gc时会调用此方法回收对象,但是jvm并不保证此方法总被调用
12.synchronized和java.util.concurrent.locks.Lock的异同 :lock能完成synchronized所实现的所有功能,Lock有比synchronized更精确的线程语义和更好的性能,synchronized能自动释放锁,而Lock要求手动释放,并且必须在finally语句中释放。
13.List、Map、Set三个接口,存取元素时,各有什么特点?