1. 对象的序列化机制
对象序列化机制是把内存中的Java对象转换成平台无关的二进制流,这种二进制流可以保存在文件中或通过网络传输出去,当其它程序获取了这种二进制流,就可以恢复成原来的Java对象。
1.1 序列化过程
使用ObjectOutputStream实现,将内存的Java对象转化为二进制流保存到文件中或通过网络传输出去。
1.2 反序列化过程
使用ObjectInputStream实现,将文件或网络的二进制流转化为Java对象。
2. 自定义类实现序列化
- 自定义类需要实现Serializable接口。
- 定义一个全局常量static final long serialVersionUID = 4221545455L,唯一标识一个类,反序列化会根据这个ID判断是否是同一个类。
- 要求自定义类的属性也是可序列化的,基本数据类型默认是可以序列化的,引用数据类型需要实现Serializable接口。
注意:
- 如果不声明serialVersionUID系统会自己声明一个,但是如果修改此类的话会导致serialVersionUID改变,进而导致反序列化失败报InvalidClassException异常。
- 类中的属性如果声明为transient或static不会序列化。