适用场景:
将对象转换成一个字节序列,并后续可以将这个字节序列完全恢复为原来的对象。可以通过网络进行,序列化机制可以弥补不同操纵系统之间的差异。
使用方式:
实现Serializable
接口调用ObjectOutputStream.writeObject()
即可将对象序列化,ObjectInputStream.readObject()
即可反序列化;
Serializable
接口与Externalizable
接口区别
- 后者可以对序列进行控制,并且需要实现:
writeExternal()
与readExternal()
方法; - 后者必须存在默认的无参构造器
transient
关键字(瞬时)
在序列化进行控制时,可能某个特定的子对象不想让Java的序列化机制自动保存与恢复,如密码等敏感信息时可以使用transient
关键字。