Java 之 序列化接口
一、java.io.Serializable 接口 类通过实现 java.io.Serializable 接口以启用其序列化功能,未实现此接口的类型将无法使其任何状态序列化或反序列化。 可序列化类的所有子类型本身都是可序列化的。 序列化接口没有方法或字段,仅用于标识可序列化的语义。 如果实现 Serializable 接口,对象如何序列化,各个属性序列化的顺序是什么,都是默认的,程序员本身无法指定,也不用关心。 如果属性前面有 static 和 transient 修饰,该属性不参与序列化。 二、java.io.Externalizable 接口 若某个要完全控制某一对象及其超类型的流格式和内容,则它要实现 Externalizable 接口中的 writeExternal 和 readExternal 方法。 程序员要在 writerExternal 方法中,自己定制哪些属性要序列化,顺序是什么样的。 程序员要在 readExternal 方法中,自己定制哪些属性要反序列化,顺序与 writerExternal 方法中的一致。 Demo:JavaBean 类 1 import java.io.Externalizable; 2 import java.io.IOException; 3 import java.io.ObjectInput;