浅谈对象序列化
对象序列化,必须实现 Serializable 接口。
- Serializable 接口:属于标记接口,没有方法。
- 序列化版本 ID:反序列化时使用,比较二进制文件的 ID 与 Class 文件得到 ID,判断是否为同一个类。
- 成员变量:
- 若成员变量也参与序列化,则必须实现 Serializable 接口。
- 若成员变量不参与序列化,需使用 transient 关键字。
- 静态变量位于方法区(而不是堆),不会被序列化。
示例
// 示例
public class Person implements Serializable {
private static final long serialVersionUID = 4620885805607038048L;
private String name;
private transient int age;
// 构造器、toString()等
}