目录
标记对象可序列化
序列化对象
写入序列化数据
关闭流
反序列化对象
处理异常
安全性
标记对象可序列化
在要序列化的类的定义中,实现java.io.Serializable接口。这个接口是一个标记接口,没有任何方法需要实现。实现这个接口告诉Java虚拟机(JVM)这个类的对象可以被序列化。如果类的字段是对象引用,那么这些引用的对象也必须是可序列化的,或者它们的字段被标记为transient(不会被序列化)。
序列化对象
创建一个ObjectOutputStream对象,它封装了一个输出流(例如FileOutputStream)。调用ObjectOutputStream的writeObject()方法,将要序列化的对象作为参数传递。writeObject()方法会将对象的状态信息写入输出流。这包括对象的类名、类签名(用于版本控制)、字段名和字段值(对于非`transient`字段)。如果对象的字段是另一个对象的引用,那么递归地序列化该对象。
写入序列化数据
ObjectOutputStream将序列化后的数据写入底层输出流。数据是以一种特殊的二进制格式写入的,该格式可以确保在不同JVM实例之间的一致性。
关闭流
在完成序列化后,调用ObjectOutputStream和底层输出流的close()方法,以释放系统资源。</