HashMap源码----jdk1.8 resize()方法实现
jdk1.7中,resize方法在并发时,有可能将链表变成环,导致程序无止境的循环下去。
导致这种bug的产生原因是,扩容过程采用头插法,会导致链表方向逆向,从而有可以成环
jdk1.8修改了1.7中的倒插法,链表的元素扩容之后,只可能分配到两个地方,1.当前所在的哈希表的下标处,2.当前所在的哈希表的下标处+当前哈希表的容量。
Node<K,V> loHead = null, loTail = null;
Node<K,V>
原创
2021-05-29 18:36:33 ·
144 阅读 ·
0 评论