如果我们正在实现 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/