最近有人問Java8 中ConcurrentHashMap 底層實現,這裏簡單列下。
大家都知道 Java8 對 HashMap 、ConcurrentHashMap 進行了改進,前者非線程安全,後者線程安全。
HashMap
在Java 7 中,採用哈希表結構
在Java 8 中,採用哈希表 + 紅黑樹
ConcurrentHashMap
在Java 7 中,採用分段的哈希表
在Java 8 中,採用數組 + 鏈表 + 紅黑樹
兩者類似,下邊主要講下ConcurrentHashMap。