赞
踩
JDK1.8之前出现死循环的原因:
HashMap在多线程环境下,同时进行put操作,并且同时进行扩容时,会出现链表环,导致死循环
因为jdk1.8之前采用的是头插法,新加入的冲突元素将会插到原有链表的头部。
扩容之后,链表上的元素顺序会反过来。这也是造成死循环的原因之一
JDK1.8解决之前版本出现的死循环:
jdk1.8后是直接把节点放到扩容后原有链表的尾部
其实JDK1.8也会出现死循环,只是原因不同:
i)链表转换为树
ii)对树进行操作时
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。