[英]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.