Java 为什么并发HashMap是可序列化的
我浏览了并发hashmap的源代码,发现它是可序列化的。HashMap也是可序列化的Java 为什么并发HashMap是可序列化的,java,serialization,concurrency,concurrenthashmap,Java,Serialization,Concurrency,Concurrenthashmap,我浏览了并发hashmap的源代码,发现它是可序列化的。HashMap也是可序列化的 为什么并发hashmap/hashmap是可序列化的?我的意思是为什么选择这个设计。HashMap是可序列化的,类实现了serializable接口 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { private static
为什么并发hashmap/hashmap是可序列化的?我的意思是为什么选择这个设计。HashMap是可序列化的,类实现了
serializable
接口
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable {
private static final long serialVersionUID = 362498820763181265L;
公共类HashMap扩展了AbstractMap
实现映射、可克隆、可序列化{
私有静态最终长serialVersionUID=362498820763181265L;
ConcurrentHashMap也是如此:
public class ConcurrentHashMap<K,V> extends AbstractMap<K,V>
implements ConcurrentMap<K,V>, Serializable {
private static final long serialVersionUID = 7249069246763182397L;
公共类ConcurrentHashMap扩展了AbstractMap
实现ConcurrentMap,可序列化{
私有静态最终长serialVersionUID=7249069246363182397L;
您可以在下面的链接中获得有关java序列化的更多详细信息
HashMap是可序列化的,类实现了
可序列化的
接口
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable {
private static final long serialVersionUID = 362498820763181265L;
公共类HashMap扩展了AbstractMap
实现映射、可克隆、可序列化{
私有静态最终长serialVersionUID=362498820763181265L;
ConcurrentHashMap也是如此:
public class ConcurrentHashMap<K,V> extends AbstractMap<K,V>
implements ConcurrentMap<K,V>, Serializable {
private static final long serialVersionUID = 7249069246763182397L;
公共类ConcurrentHashMap扩展了AbstractMap
实现ConcurrentMap,可序列化{
私有静态最终长serialVersionUID=7249069246363182397L;
您可以在下面的链接中获得有关java序列化的更多详细信息
正如其他人已经说过的,
HashMap
是可序列化的,但是Map或集合
接口并不强制每个集合的实现都是“可序列化的”。如果您想创建自己的Set
或Map
,但不将其设置为可序列化,则这是您的选择,强制人们这样做是没有意义的
但我的猜测是,大多数实用程序类,如
Collection
实现,都是可序列化的,所以每个人都不必创建自己的SerializableHashMap
,因为这些类被大量使用,而且很多人都在序列化它们。所以这是它们的一个基本特性。正如其他人已经说过的,HashMap
是Serializable
,但是Map或Collection
接口并不强制每个集合的实现都是“Serializable”。如果您想创建自己的Set
或Map
而不将其设置为Serializable,这是您的选择,强制人们这样做没有意义
但我的猜测是,大多数实用程序类,如
Collection
实现,都是可序列化的,因此每个人都不必创建自己的serializablehasmap
,因为这些类被大量使用,而且很多人对它们进行序列化。所以这是它们的一个基本特性。因为它实现了“serializable”接口。在这里您可以得到一些有趣的东西JavaHashMap
类是可序列化的,因为它实现了“可序列化”接口。在这里你可以得到一些有趣的东西JavaHashMap
类是可序列化的,q.v.。我想OP想知道它为什么实现可序列化接口,为什么选择这种设计。我们可能无法为你的查询找到满意的答案。但我没有看到HashMap和ConcurrentHashMap之间有多大区别除了$WriteThroughEntry之外,erializaiton进程。以下是一些有趣的事实:是的,我想知道它为什么实现可序列化接口。我想OP想知道它为什么实现可序列化接口,为什么选择这种设计。我们可能无法为您的查询找到满意的答案。但我没有看到HashMap和ConcurrentHashMap序列化进程,除了$WriteThroughEntry。以下是一些有趣的事实:是的,我想知道为什么它实现可序列化接口。