clwn.net
当前位置:首页 >> hAshmAp死循环问题 >>

hAshmAp死循环问题

一直以来只是知道HashMap是线程不安全的,但是到底HashMap为什么线程不安全,多线程并发的时候在什么情况下可能出现问题? HashMap底层是一个Entry数组,当发生hash冲突的时候,hashmap是采用链表的方式来解决的,在对应的数组位置存放链表的头

主要是多线程同时put时,如果同时触发了rehash操作,会导致HashMap中的链表中出现循环节点,进而使得后面get的时候,会死循环。

原因为你自定义的类名为HashMap.与java.util.HashMap类名相同.在没有导入并且指定使用java.util.HashMap的情况下,HashMapemStaff=newHashMap();emStaff实例为你当前自定义的HashMap类的实例,自定义类里并没有put方法.所以报错.如果想使用java.ut...

递归死循环肯定是中止条件错了!看了你的代码while (i < len) { if (key == a[i]) { return i; } 这个地方造成死循环了!因为i的值永远是0;并且a[0]的值与key不相等;所以死循环在这里!

递归死循环肯定是中止条件错了!看了你的代码while (i < len) { if (key == a[i]) { return i; } 这个地方造成死循环了!因为i的值永远是0;并且a[0]的值与key不相等;所以死循环在这里!

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com