google guava缓存结构
1)LocalCache.Segment(继承了可重入锁,有多少个Segment取决于设置的并发级别)
2)java.util.concurrent.atomic.AtomicReferenceArray(第一层Java的原子对象数组,没有使用到CurrentHashMap),通过对key进行hash,决定数组的index
3)ReferenceEntry<K, V>,数组中存储的不仅仅一个对象,这个属于类似链表的对象,注意到getNext()方法和取值需要循环。如果hash不均匀会影响查询速度。
4)ValueReference<K, V>,真正存储数据的对象。