1 Serializable接口概述
有时候我们有一种需求,保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且想把保存的对象状态再读出来,这样既可以实现对象的传递。
实现这一需求的方式有很多,比如,使用objectMapper序列化为Json字符串/对象,再进行传递或者保存,Java的设计指出也考虑到了这种需求,就设计出了Serializable接口,该接口没有必要实现的方法,默认继承了该接口后会就能自动调用java默认的序列化和放序列化。
2 Serializable接口代码实践
定义一个类用于序列化:UserInfo .java
@Getter
@Setter
public class UserInfo implements Serializable{
//实现Serializable接口才能被序列化
private String userName;
private String usePass;
private transient int userAge;//使用transient关键字修饰的变量不会被序列化
public UserInfo() {
userAge=20;
}
public UserInfo(String userName, String usePass, int userAge) {
super();
this.userName = userName;
this.usePass = usePass;
this.userAge = userAge;
}
@Override
public String toString() {
return "UserInfo [userName=" + userName + ", usePass=" + usePass + ",userAge="+(userAge==0?"NOT SET":userAge)+