1.ConcurrentHashMap中的实体:
ConcurrentHashMape(整个hash表)
Segment(分段桶)
HashEntry(节点)
2.对于一个key,需要经过三次hash操作,才能最终确定这个元素的位置:
(1)对于一个key,先进行一次hash操作,得到hash值h1。
(2)将得到的h1的高几位进行第二次hash,得到hash值h2。h2确定该元素放在哪个Segment。
(3)将得到的h1进行第三次hash,得到hash值h3。通过h3能确定该元素放在哪个hashEntry。
3.ConcurrentHashMape部分方法实现原理:
put:加锁
get:不加锁
size,containsValue:乐观锁(3次机会)