[英]Why Concurrent HashMap is Serializable
我正在查看並發哈希圖的源代碼,發現它是可序列化的。 HashMap也可以序列化。
為什么並發哈希圖/哈希圖是可序列化的? 我的意思是為什么要做出這種設計選擇。
HashMap是可序列化的,該類實現Serializable
接口
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable {
private static final long serialVersionUID = 362498820763181265L;
ConcurrentHashMap也是如此:
public class ConcurrentHashMap<K,V> extends AbstractMap<K,V>
implements ConcurrentMap<K,V>, Serializable {
private static final long serialVersionUID = 7249069246763182397L;
您可以在以下鏈接中獲得有關Java序列化的更多詳細信息
就像其他人已經說過的那樣, HashMap
是Serializable
,但是Map或Collection
接口並不強制每個collection的實現都是“可序列化的”。 如果要創建自己的Set
或Map
而不將其設置為可序列化,則由您選擇,強迫人們這樣做是沒有意義的。
但是我的猜測是,大多數實用程序類(例如Collection
實現)都是可序列化的,因此每個人都不必創建自己的SerializableHashMap
,因為使用了這些類的人很多,而且有很多人對其進行序列化。 因此,這對他們來說是一個基本功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.