ConcurrentHashMap中的内部类:
1. static final class HashEntry<K,V>
每个段中链表元素的节点。其中的next字段是final的,不能修改,所以不能在这个节点的下面添加新节点,只能在它的前面添加。
2. static final class Segment<K,V> extends ReentrantLock implements Serializable
重要字段:
a) transient volatile int count
当前段Segment中元素的个数。
b) transient int modCount
记录当前段结构变化的次数。
c) transient int threshold
当前段的阈值。
d) transient volatile HashEntry<K,V>[] table
存放HashEntry的数组。
e) final float loadFactor
加载因子。
构造函数:
Segment(int initialCapacity, float lf)
设置加载因子,调用void setTable(HashEntry<K,V>[] newTable)方法使用指定initialCapacity创建新的table数组。
1. static final class HashEntry<K,V>
每个段中链表元素的节点。其中的next字段是final的,不能修改,所以不能在这个节点的下面添加新节点,只能在它的前面添加。
2. static final class Segment<K,V> extends ReentrantLock implements Serializable
重要字段:
a) transient volatile int count
当前段Segment中元素的个数。
b) transient int modCount
记录当前段结构变化的次数。
c) transient int threshold
当前段的阈值。
d) transient volatile HashEntry<K,V>[] table
存放HashEntry的数组。
e) final float loadFactor
加载因子。
构造函数:
Segment(int initialCapacity, float lf)
设置加载因子,调用void setTable(HashEntry<K,V>[] newTable)方法使用指定initialCapacity创建新的table数组。