Java 序列化:持久化对象图
1. Java 序列化概述
将数据模型保存到磁盘的一种方法是把数据模型对象图中的所有对象实例写入磁盘,之后再重新加载。Java 序列化 API 采用的就是这种方法,它能将内存中的实际对象实例保存到磁盘。序列化对象是将其数据成员写入磁盘的过程,反序列化对象则是从写入磁盘的数据成员中重构对象实例的过程。
例如,有一个简单的类 MyPoint
:
package book;
public class MyPoint {
public int x;
public int y;
public void doSomething() { ... }
}
要将 MyPoint
的实例保存到磁盘,就需要把它的两个数据成员 x
和 y
写入磁盘。保存 x
和 y
后,就能在之后创建一个新的 MyPoint
实例,并将其 x
和 y
值设置为之前保存的值,从而有效地重现原始实例。 doSomething()
方法已经在编译后的类文件中定义,序列化过程中无需存储任何方法信息。类实例在内存中就是其所有属性的值,要将实例序列化到磁盘,就必须保存其所有数据成员。
如果数据成员是对另一个对象实例的引用,该引用本身只是一个内存地址,保存它显然没有意义