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下,專門解決併發問題。