HashMap:

  從JDK1.2起,就有了HashMap,HashMap不是執行緒安全的,多執行緒操作時需要注意。

CurrentHashMap:

  在JDK1.5中,引入concurrent包,從此Map也有安全的了。

  ConcurrentHashMap原始碼中引入了一個“分段鎖”的概念,HashTable在增加大小時是把整個部分鎖住,而ConcurrentHashMap把一個大的Map拆分成N個小的HashTable(初始化預設長度16),put和get的時候,都是根據key.hashCode()算出放到哪個Segment中。當然速度也比HashTable快很多倍。