Cra*_*lus 24 java collections serialization dictionary hashmap
我正在查看HashMap的来源.
一HashMap implements Serializable.
好的,它可以作为对象进行存储/传输.
但是我看到哈希表本身被标记为transient.
我不明白你this.If其标记为短暂的,不这意味着它应该不被序列化?
但是所有数据都在表格中.所以为什么呢transient?
也许我对如何Serializable运作感到困惑?
Col*_*inD 33
HashMap使用writeObject和readObject实现自定义序列化而不是让它的字段正常序列化.它将桶的数量,总大小和每个条目写入流中,并在反序列化时从这些字段重建自身.正如tzaman所说,表本身在串行形式中是不必要的,因此它不是为了节省空间而序列化的.
您可以在Serializable javadoc中阅读有关这些方法和其他一些自定义序列化(writeReplace和readResolve)的方法.
tza*_*man 13
该transient关键字指示字段不应该被包括在类的序列化表示.该Entry[]的表HashMap只是一个加速结构-它允许存储的条目的快速查找.整个表本身不需要序列化,只需要序列化它包含的条目,因为在从条目列表反序列化时可以再次重建表.
| 归档时间: |
|
| 查看次数: |
25535 次 |
| 最近记录: |