栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

HashMap可序列化

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HashMap可序列化

如果您查看源代码,将会看到它不依赖默认的序列化机制,而是手动写出所有条目(作为键和值的交替流):

      private void writeObject(java.io.ObjectOutputStream s)  throws IOException         {  Iterator<Map.Entry<K,V>> i =      (size > 0) ? entrySet0().iterator() : null; // Write out the threshold, loadfactor, and any hidden stuff s.defaultWriteObject(); // Write out number of buckets s.writeInt(table.length); // Write out size (number of Mappings) s.writeInt(size); // Write out keys and values (alternating) if (i != null) {     while (i.hasNext()) {         Map.Entry<K,V> e = i.next();         s.writeObject(e.getKey());         s.writeObject(e.getValue());     } }        }

这比数组要紧凑,数组可以包含许多空条目,链接链和Map $ Entry包装器的开销。

注意,它仍然

defaultWriteObject
为“ easy”字段调用。为了使其正常工作,它必须将其他所有内容都标记为
transient



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号