java - 为什么实现 Externalizable 需要一个默认的公共(public)构造函数?

标签 java serialization

如果我们正在实现 Serializable,则不需要它。那么为什么会有这种差异呢?它与序列化的实际机制有何关系?

最佳答案

可以在 http://www.jusfortechies.com/java/core-java/externalization.php 上找到详尽的解释(尽管文章的语法可能会有所改进) .简短的回答,以备将来引用,以防链接页面消失:

Externalizable 是扩展Serializable 的接口(interface)。然而,与 Serializable 不同的是,仅通过读取序列化的字节流并不能恢复对象,而是调用公共(public)构造函数,并且只有在创建对象后,才会恢复其状态。这使得恢复更有效率。

编辑:另见 What is the difference between Serializable and Externalizable in Java? .

关于java - 为什么实现 Externalizable 需要一个默认的公共(public)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8627996/

相关文章:

java - 将 BufferedImage 像素数据转换为可读输出?

C++ XML 数据绑定(bind)

java - 用于容器化应用程序的 Open JDK 和 Oracle JDK 之间的区别

java - 使用嵌套映射中的同级键值对访问子节点

java - 从文本文件中将元素单独添加到队列中

c# - 通过 Web 服务序列化自定义对象中的名称/值对

java - 在序列化和反序列化过程中如何调用构造函数?

java - Spring 中的嵌套 Thymeleaf 模板

c# - 带有 Visual Studio 2008 的 Windows 7 64 位序列化问题

c# - 我想要哪个 Json 序列化器?