需要先定义以一个类
import java.io.Serializable;
/*
序列化和反序列化的时候,会抛出NotSerializableException:没有序列化异常
类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。
Serializable接口也叫标记型接口
要进行序列化和反序列化的类必须实现Serializable接口,这样会给类添加一个标记
当我们进行序列化和反序列化的时候,就会检测类上是否有这个标记
有:就可以序列化和反序列化
没有:就会抛出 NotSerializableException 异常
类似:去市场买肉 --> 肉上有一个蓝色章(代表检疫合格) --> 放心购买 --> 买回来吃随意
static关键字:静态关键字
静态优于非静态加载到内存中(静态优先于对象进入到内存中)
被static修饰的成员变量不能被序列化的,序列化的都是对象
private int age; 没有添加static
Person{name='小美女', age=18}
小美女18
---------------------------
private static int age;
Person{name='小美女', age=0}
小美女0
transient关键字:瞬态关键字
被transient修饰成员变量,不能序列化
工作时,要是不想成员变量被序列化,可以transient。
作用static一样。
*/
//这里需要实现Serializable接口
public class Person implements Serializable {
//不管序列号如何修改,我们都不会发生改变
private static final long serialVersionUID = 1L;
private String name;
//private int age;
public int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {