參考連接:html
http://www.javashuo.com/article/p-zcbvqkex-ey.html數組
https://my.oschina.net/hosee/blog/639352安全
HashMap底層是一個Entry數組。若是兩個Key的Hash值相同,則會產生碰撞衝突。併發
HashMap擴容時會生成一個新的數組。spa
ConcurrentHashMap容許多個修改操做併發進行,其關鍵在於使用了鎖分離技術。它使用了多個鎖來控制對Hash表的不一樣部分進行的修改。ConcurrentHashMap內部使用段(Segment)來表示這些不一樣的部分,每一個段其實就是一個小的HashTable, 它們有本身的鎖。只要多個修改操做發生在不一樣的段上,它們就能夠併發進行。.net
ConcurrentHashMap是線程安全的類,並不能保證使用了ConcurrentHashMap的操做都是安全的。線程
ConcurrentHashMap的get不須要加鎖,put操做須要加鎖。htm