HashMap和Hashtable的区别--List,Set,Map等接口是否都继承自Map接口--Collection和Collections的区别
面试题: 1.HashMap和Hashtable的区别? HashMap:线程不安全,效率高,键和值都允许null值 Hashtable:线程安全,效率低,键和值都不允许null值 ArrayList代替Vector HashMapd代替Hashtable 2.List,Set,Map等接口是否都继承自Map接口? List,Set是继承自Collection接口 Map是Map的顶层接口 3.Collection和Collections的区别? Collection:是单列集合的顶层接口,有两个子接口List和Set Collections:是针对集合进行操作的工具类 A:public static <T> void sort(List<T> list) B:public static <T> int binarySearch(List<?> list,T key) C:public static <T> T max(Collection<?> coll) D:public static void reverse(List<?> list) E:public static void shuffle(List<?> list)
/* * 补充掌握的知识点
* java.util.concurrent.ConcurrentHashMap<K,V> * ConcurrentHashMap特点:Hashtable的线程安全+HashMap的高性能 * * 只针对需要修改的数据进行加锁(Hashtable线程安全的体现) * 对其它不需要修改的数据不添加锁,可以直接获取(HashMap高性能的体现) * * 举例理解: * 游乐场某一项项目需要维护,这个时候只针对需要维护的这个项目加锁, * 而其它无需维护的项目仍然对外开放(即不加锁),而不是一个项目需要维护就必须关掉整个游乐场 * */