ConcurrentHashMap HashMap HashTable區別
ConcurrentHashMap HashMap HashTable
HashTable 比HashMap低 因為執行緒安全 要比較同步鎖
HashTable 1丶是一個包含單向鏈的二維陣列,table陣列中是entry《K,V》儲存,entry物件
2丶Values不能為空
3丶 執行緒安全 所有的方法均包含 synchronized 修飾
HashMap 1 相當於Hashtable升級版
2 可以放入空值
3 基於Hash表(根據關鍵碼值直接進行訪問資料結構 )
4 執行緒不安全
ConCurrentHashMap : synchronized 是針對整張Hash表,即每次鎖住整張表讓執行緒獨佔,執行緒安全的背後是巨大的浪費
TreeMap 1 有序的儲存
2 自己可以排序 讓key值 的類 實現comparable介面
為什麼我們需要ConcurrentHashMap和CopyOnWriteArrayList
同步的集合類(Hashtable和Vector)
同步的封裝類(使用Collections.synchronizedMap()方法和Collections.synchronizedList()方法返回的物件)可以建立出執行緒安全的Map和List
ConcurrentHashMap和Hashtable的區別
Hashtable的大小增加到一定的時候,效能會急劇下降,因為迭代時需要被鎖定很長的時間。因為ConcurrentHashMap引入了分割(segmentation),不論它變得多麼大,僅僅需要鎖定map的某個部分,而其它的執行緒不需要等到迭代完成才能訪問map。簡而言之,在迭代的過程中,ConcurrentHashMap僅僅鎖定map的某個部分,而Hashtable則會鎖定整個map
相關文章
- HashMap、HashTable、ConcurrentHashMap的區別HashMap
- 集合類HashMap,HashTable,ConcurrentHashMap區別?HashMap
- HashMap、Hashtable、ConcurrentHashMap的原理與區別HashMap
- HashTable、ConcurrentHashMap、TreeMap、HashMap關於鍵值的區別HashMap
- HashTable與ConcurrentHashMap的區別HashMap
- 10分鐘掌握ConcurrentHashMap 3分鐘清楚和HashMap、Hashtable的區別HashMap
- HashMap底層實現原理/HashMap與HashTable區別/HashMap與HashSet區別HashMap
- C#中Hashtable和HashMap的區別C#HashMap
- 一文讀懂JDK7,8,9的hashmap,hashtable,concurrenthashmap及他們的區別JDKHashMap
- HashMap為何執行緒不安全?HashMap,HashTable,ConcurrentHashMap對比HashMap執行緒
- java複習之HashMap和Hashtable的區別JavaHashMap
- ConcurrentHashMap 與HashTableHashMap
- 一文讀懂JDK1.7,JDK1.8,JDK1.9的hashmap,hashtable,concurrenthashmap及他們的區別JDKHashMap
- 五分鐘看懂Hashtable原始碼以及與HashMap的區別原始碼HashMap
- Hashtable和HashMapHashMap
- Java集合系列(四):HashMap、Hashtable、LinkedHashMap、TreeMap的使用方法及區別JavaHashMap
- 【java】【Map】HashMap、Hashtable、CollectionsJavaHashMap
- HashMap以及ConcurrentHashMap(volatile)HashMap
- HashMap、Hash Table、ConcurrentHashMapHashMap
- HashMap、LinkedHashMap、HashTable、HashSet筆記HashMap筆記
- 什麼是ConcurrentHashMap?不同JDK下ConcurrentHashMap的區別?HashMapJDK
- 原始碼分析–ConcurrentHashMap與HashTable(JDK1.8)原始碼HashMapJDK
- HashMap 、ConcurrentHashMap知識點全解析HashMap
- HashSet與HashMap的區別HashMap
- Java集合詳解4:一文讀懂HashMap和HashTable的區別以及常見面試題JavaHashMap面試題
- hashmap和concurrenthashmap原始碼分析(1.7/1.8)HashMap原始碼
- Hashtable/HashMap與key/value為null的關係HashMapNull
- HashSet/HashMap、TreeSet/TreeMap、LinkedHashSet/LinkedHashMap 區別HashMap
- Java中HashMap,LinkedHashMap,TreeMap的區別[轉]JavaHashMap
- Java7/8中的HashMap和ConcurrentHashMap全解析JavaHashMap
- 為什麼hashtable不允許設定Null但是hashmap允許?NullHashMap
- 三,TreeMap和HashMap,TreeSet和HashMap的區別以及方法使用上的不同HashMap
- 一文讓你徹底理解 Java HashMap 和 ConcurrentHashMapJavaHashMap
- 一文讀懂JDK7,8,9的hashmap,hashtable,concJDKHashMap
- 為什麼HashMap的鍵值可以為null,而ConcurrentHashMap不行?HashMapNull
- Java併發指南13:Java 中的 HashMap 和 ConcurrentHashMap 全解析JavaHashMap
- 別再問我ConcurrentHashMap了HashMap
- Java併發指南13:Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析JavaHashMap
- HashMap與LinkedHashMap型別集合HashMap型別