• HashTable上下文同步:指的是它在更新hashcode的时候,要获取锁。

正解:同步是指在同一个时间点下面只有一个线程可以更改hash表,任何线程在更新hash表之前都要获得对象锁,其他现成要等待对象锁的释放。

  • HashMap同步的实现:在代码中用Synchronize关键字修饰

正解:Map m=Collections.synchronizedMap(new HashMap()) 来返回一个同步的Map,该Map封装了底层的HashMap所有方法,是的在多线程情况下安全。

 

 

  来源 更新 线程安全 特点
ArrayList Object[] array  快O(1) 动态扩展(1.5倍) 
Vector Object[] array 快O(1) 动态扩展(2倍) 
LinkedList 双向链表 慢O(n)  
HashTable Dictionary 效率没有HashTable高  不允许主键null
HashMap Map  由于没有实现线程安全效率高 轻量级的HashTable,只允许一个主键为null,回收方式(强引用,必须强制回收)
TreeMap  SortMap   读键序的效率高    按键有序
LinkedHashMap  HashMap   需要输入和输出顺序一样的时候使用    还可以按读取顺序排序
WeakHashMap  Map       和HashMap的区别在于回收方式(弱引用,直接回收)