目录
实现Serializable接口
序列化
反序列化
实现Externalizable接口
序列化
反序列化
实现了Serializable或Externalizable接口的类的对象才能被序列化,否则抛出异常。序列化的时候系统会把当前类的serialVersionUID写入序列化的二进制文件中,当反序列化的时候系统会检测文件中的serialVersionUID是否和当前类的serialVersionUID一致,如果一致就说明序列化的类的版本和当前类的版本是相同的,这个时候可以成功反序列化。否则说明当前类和反序列化的类相比发生了某些变化,比如成员变量的数量、类型发生了变化,这个时候是无法正常反序列化的。
实现Serializable接口
序列化
通过实现Serializable接口来标记一个类可以被序列化,如果只是实现序列化接口,没有其他任何处理的话就是使用默认序列化机制。也可以通过以下方式进行序列化, 将一个对象序列化,使用ObjectOutputSteam类的writeObject方法将对象写入一个输出流中即可。
class Person implements Serializable {
private String name;
private int age;
// constructor, getters and setters...
}
public class Main {
public static void main(String[] args) {
Person person = new Person("John", 25);
try {
FileOutputStream fileOut = new Fi