Java面试中,最常被人问到的几个问题:
1、java.util.*包的UML结构图。
Collection
¦
¦_List
¦ ¦_LinkedList
¦ ¦_ArrayList
¦ ¦_Vector
¦
¦_Set
¦ ¦_TreeSet
¦ ¦_HashSet
¦
¦_Map
¦ ¦_HashMap
¦
¦_Compare,Comparetor
¦
¦_Dictionary
¦ ¦_Hashtable
¦_ ...
2、Vector和ArrayList、LinkedList区别
(1)、LinkedList内部以链表形式存储数据。ArrayList内部以数组形式存储数据。
(2)、Vector同ArrayList,不过它与ArrayList比较起来是线程安全(thread-safe)的。
3、Hashtable 和 HashMap之间的区别
(1)、Hashtable是继承了Dictionary,是线程安全的。
(2)、HashMap实现了Map接口,不是线程安全的。
如何保证线程安全的?
答:每个修改容器中数据的操作都是同步的(synchronized),因此保证了线程安全。
4、String、StringBuffer,StringBuilder之间区别。
(1)、String是长度不可变的,StringBuffer和StringBuilder长度都是可以变化的。
(2)、StringBuffer是线程安全的, StringBuilder不是线程安全的。
1、java.util.*包的UML结构图。
Collection
¦
¦_List
¦ ¦_LinkedList
¦ ¦_ArrayList
¦ ¦_Vector
¦
¦_Set
¦ ¦_TreeSet
¦ ¦_HashSet
¦
¦_Map
¦ ¦_HashMap
¦
¦_Compare,Comparetor
¦
¦_Dictionary
¦ ¦_Hashtable
¦_ ...
2、Vector和ArrayList、LinkedList区别
(1)、LinkedList内部以链表形式存储数据。ArrayList内部以数组形式存储数据。
(2)、Vector同ArrayList,不过它与ArrayList比较起来是线程安全(thread-safe)的。
3、Hashtable 和 HashMap之间的区别
(1)、Hashtable是继承了Dictionary,是线程安全的。
(2)、HashMap实现了Map接口,不是线程安全的。
如何保证线程安全的?
答:每个修改容器中数据的操作都是同步的(synchronized),因此保证了线程安全。
4、String、StringBuffer,StringBuilder之间区别。
(1)、String是长度不可变的,StringBuffer和StringBuilder长度都是可以变化的。
(2)、StringBuffer是线程安全的, StringBuilder不是线程安全的。