java序列化serialVersionUID-的作用-代码详解
1.操作环境
JDK8
lombok-1.18.10
2.serialVersionUID的作用
在反序列化时,避免InvalidClassException
3.代码演示
3.1.反序列化-正常
3.1.1一个不存在 serialVersionUID 的实体类,共 ( name1 name2 age1 age2 ) 四个属性
3.1.2.将对象序列化后存储到 “序列化.txt文件”中
查看文件内的信息
3.1.3.执行反序列化操作,把文件内的信息转成对象
3.2.反序列化-异常-InvalidClassException
**3.2.1.异常出现–注释掉实体类中的两个属性 name1 age1,然后执行反序列化会是什么样呢?
会抛出 InvalidClassException
3.3.反序列化-异常解决-添加serialVersionUID
3.3.1.在实体类中 添加 private static final long serialVersionUID = 1L;
添加 UID后重复 3.1 和 3.2 的操作,会发现异常消失,并且注释的属性会自动清除,新增的属性会进行赋空值操作
执行序列化对象操作,并将信息保存到文件
查看文件内的信息
尚未修改实体类,此时进行反序列化操作,查看输出信息
修改实体类,注释掉 name1 age1 新增属性 nage3 age3
修改实体类后,反序列化查看输出信息
【代码地址】
.........