1.String、StringBuffer、StringBuilder的区别
String是不可变字符串(因为内部是字符数组,数组被final修饰,所以不可变),每次改变都要重新创建对象,线程不安全,不同步。
StringBuffer 可变字符串,每次都是修改自己的内容,不创建对象,线程安全,同步,StringBuffer一致,线程不安全,不同步,效率高。
效率:StringBuilder>StringBuffer>String
2. 创建对象的五种方式
(1)new关键字创建对象
(2)通过字节码Class创建对象
(3)clone
(4)序列化创建对象
(5)反射创建对象
3.ArrayList、LinkedList、Vector的区别
ArrayList底层数据结构是数组,查询快,增删慢,线程不安全,不同步,效率高;
LinkedList底层数据结构是链表,查询慢,增删快,不同步,线程不安全,效率高;
Vector底层数据结构是数组,查询快,增删慢,同步,线程安全,效率低。
4.Hashmap和Hashtable的区别
HashMap:允许null值null键,不同步,线程不安全,效率高;
Hashtable:不允许null值null键,同步,线程安全,效率低。
5.final、finally、finalize的区别