jdk1.7之前

resize(int capacity);

jdk1.8之后

resize()
默认扩容为原数组长度的两倍
hash & (newTableLen - 1) = hash & (oldTableLen * 2 - 1)
当hash & newTableLen == 0 ,扩容后的新数组下标 = 扩容前的旧数组下标
当hash & newTableLen == 1 ,扩容后的新数组下标 = 扩容前的旧数组下标 + 旧数组长度

image.png
image.png
loHead 下标不变的链表头
loTail 下标不变的链表尾
hiTail 下标改变的链表尾
hiHead 下标改变的链表头
尾插法 , 链表顺序与原先是一致的