1.jdk1.7到jdk1.8 Map发生了什么变化(底层)?

1.8以后hashMap的数据结构发生了变化,从以前的单纯的数组+链表结构变成数组+链表+红黑树。也就是说在JVM存储hashMap的K-V时仅仅经过key来决定每个entry的存储槽位(Node[]中的index)。而且Value以链表的形式挂在到对应槽位上(1.8之后若是value长度大于8则转为红黑树)。 可是hashmap1.7跟1.8 中都没有任何同步操做,容易出现并发问题,甚至出现死循环致使系统不可用。解决方案是jdk的ConcurrentHashMap,位于java.util.concurrent下,专门解决并发问题。
相关文章
相关标签/搜索