java中的序列化和外部化
可能重复:java中的序列化和外部化,java,serialization,Java,Serialization,可能重复: java中序列化和外部化之间的区别是什么?基本上,和之间的区别是,对于实现可序列化的类,对象的序列化是自动完成的,而实现可外部化的类则负责自身的序列化,没有默认序列化过程的帮助 API规范中提供了有关接口和接口的更多信息。从Externalizable接口文档: 只有类的标识 外部化实例是用 序列化流,它是 班级拯救的责任 并恢复其内容 实例。书面的外部和外部的 读取的外部方法 外部化接口是 由类实现,以提供 类完成对格式的控制 和的流的内容 对象及其超类型 这篇文章在“创建您自己
java中序列化和外部化之间的区别是什么?基本上,和之间的区别是,对于实现可序列化的类,对象的序列化是自动完成的,而实现可外部化的类则负责自身的序列化,没有默认序列化过程的帮助 API规范中提供了有关接口和接口的更多信息。从
Externalizable
接口文档:
只有类的标识
外部化实例是用
序列化流,它是
班级拯救的责任
并恢复其内容
实例。书面的外部和外部的
读取的外部方法
外部化接口是
由类实现,以提供
类完成对格式的控制
和的流的内容
对象及其超类型
这篇文章在“创建您自己的协议:外部化接口”一节中讨论了
Externalizable
接口。我建议阅读一篇名为的文章,该文章描述了序列化和外部化之间的区别
首先是描述什么是序列化:
Java中对象的序列化
允许您创建字节序列
从任何已实现的对象
可串行化接口;它也
允许您转换该字节序列
回到一个物体上
接下来,它描述了外部化可能比序列化更可取的情况:
有时你可能会
对项目的特殊要求
对象的序列化。对于
例如,您可能有一些
网络安全敏感部分
对象,如密码,您可以
不想保留和转移
某处。或者,这可能是毫无价值的
保存引用的特定对象
因为它的值
恢复后将变得一文不值
你可以控制这个过程
通过实现
外部化接口,而不是
可序列化。此接口扩展了
原始可序列化接口
并添加writeExternal()和
readExternal()。这两种方法将
自动在您的
对象的序列化和
反序列化,允许您
控制整个过程
我建议阅读整篇文章,因为上面的摘录没有涵盖细节。本文还包含一些您可能会发现有用的代码片段。-1作为副本(请参阅Macarse的答案)修复了链接,谢谢!