文本描述
[Java基础]1.”==”和equals方法有什么区别?答:==是运算符,equals是方法,方法可以通过重写改变其行为,如String的equals就是比较字符串
内容。
2. switch语句能否作用在byte上,能否作用在long上,能否作用在String上?答: 在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及
Enum类型,在Java7中可以支持String。
3. Integer与int的区别?答:Integer为包装类,int是基本数据类型。包装类拥有方法和属性,基本数据类型不具备。包装类可以通
过intValue来转换成基本数据类型,也可以通过new Integer()将基本数据类型转换为包装类。在JDK1.5后,包装类和基本数据类型可以实现自动转换。
4.try {}里有一个
return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?答: finally在return之前执行。
5.final, finally,
finalize的区别。final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,无论是否异常该部分代码总是执
行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法。
[Java集合]1.ArrayList、Vector、LinkedList的存储性能和特性?ArrayList
和Vector都是使用数组方式存储数据,索引数据快而插入/删除数据慢;Vector相对ArrayList是线程安全的,所以性能要低一些;而LinkedList使用双向链表实现存储,插入/删除
数据快而索引数据慢。
2.如何对List进行排序?使用java.util.Collections的sort静态方法。一种方法是传入一个Comparator对象,另一种方法是List中的对象实现
Comparable。
[多线程]1.synchronized和java.util.concurrent.locks.Lock的异同?两者功能类似,都是用来控制线程同步。Lock能完成synchronized所实现的所有功能。
Lock需要在finally代码中释放锁,synchronized会自动释放锁。
2.sleep() 和 wait() 有什么区别?sleep是线程类(Thread)的方法,传入参数是毫秒数,线程暂停休眠一
段时间,到时后会自动恢复,sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁并等待,只有此对象调用notify或notifyAll后本线程
才再次获得对象锁,并运行。。。。。。以下内容略