一、ConcurrentHashMap扩容
(jdk1.7)
扩容只针对ConcurrentHashMap中的hashEntry类型的table数组进行扩容。
方法在Segment类中:rehash() , 扩容倍数为:2倍扩容
- 源码解析:
private void rehash(HashEntry<K,V> node) {
//先将需要扩容的table数组进行拷贝
HashEntry<K,V>[] oldTable = table;
//获取数组的长度
int oldCapacity = oldTable.length;
// 新table的容量为:旧数组容量*2
int newCapacity = oldCapacity << 1;
//阈值=新容量*加载因子
threshold = (int)(newCapacity * loadFactor);
//创建新的数组并定义容量为扩容后的容量
HashEntry<K,V>[] newTable =(HashEntry<K,V>[]) new