HashMap在1.8相對1.7作了不少改進,好比紅黑樹,還有今天要說的環鏈的造成,以前看別人博客只是說到了1.7版本HashMap在擴容的時候會造成環鏈,可是沒有說到具體緣由。安全
第二幅圖文字我在這重複一下:可是這時候Thread-2甦醒了,此時的Thread-2遍歷的仍是以前的那個old table,因此Thread-2來作第一次循環的時候第一個元素e的結構是{key=1,value=1,next=2},而後Thread-2把這個新的元素移到新的table上去,可是此時的newtable的結構以下線程
這時候二個元素的下一個節點指向了對方,因此就形成了環鏈。3d