Possible Duplicate:
What is the difference between Serializable and Externalizable in Java?


java中的序列化和外部化有什么区别?

最佳答案

基本上,SerializableExternalizable之间的区别在于,对于实现Serializable的类,对象的序列化将自动进行,而实现Externalizable的类则负责自身的序列化,而无需使用默认序列化程序。

API规范中为Externalizable接口和Serializable接口提供了更多信息。从Externalizable界面文档中:


  只有一个班级的身份
  可外部化的实例被写入
  序列化流,它是
  阶级救人的责任
  并恢复其内容
  实例。 writeExternal和
  readExternal方法
  可外部化的接口是
  由一个类实现以赋予
  类完全控制格式
  和流的内容
  对象及其超类型。


Discover the secrets of the Java Serialization API文章在“创建自己的协议:可外部化的接口”部分中的Externalizable接口上进行了讨论。

10-08 13:38