map

Posted on By xqw

HashMap ConcurrentHashmap源码

HashMap、LinkedHashMap、TreeMap 区别

HashMap,LinkedHashMap,TreeMap的区别

134 jdk1.7 头插法,扩容重新计算哈希 jdk1.8 尾插法,扩容使用&,计算扩容后位置

HashMap多线程环形问题

如果只有1个槽的数据:

node(1)->node(3)->node(4)H

resize后:

node(3)->node(1)
node(4)

如果第一个线程再执行node(3).next之前被挂起,而第二个线程执行完了,继续执行第一个得到的node(3).next=node(1),出现死循环

java7中resize的时候将每个数据放到链表的第一个,而java8会放到最后,不会出现环形,但是还是会出现丢失更新等等问题

java7 HashMap环形问题