java序列化serialVersionUID-的作用-代码详解

1.操作环境

JDK8
lombok-1.18.10

2.serialVersionUID的作用

在反序列化时,避免InvalidClassException

3.代码演示

3.1.反序列化-正常

3.1.1一个不存在 serialVersionUID 的实体类,共 ( name1 name2 age1 age2 ) 四个属性
java序列化serialVersionUID-的作用-代码详解


3.1.2.将对象序列化后存储到 “序列化.txt文件”中
java序列化serialVersionUID-的作用-代码详解
查看文件内的信息java序列化serialVersionUID-的作用-代码详解


3.1.3.执行反序列化操作,把文件内的信息转成对象
java序列化serialVersionUID-的作用-代码详解

3.2.反序列化-异常-InvalidClassException

**3.2.1.异常出现–注释掉实体类中的两个属性 name1 age1,然后执行反序列化会是什么样呢?
java序列化serialVersionUID-的作用-代码详解
会抛出 InvalidClassExceptionjava序列化serialVersionUID-的作用-代码详解

3.3.反序列化-异常解决-添加serialVersionUID

3.3.1.在实体类中 添加 private static final long serialVersionUID = 1L;
添加 UID后重复 3.1 和 3.2 的操作,会发现异常消失,并且注释的属性会自动清除,新增的属性会进行赋空值操作


java序列化serialVersionUID-的作用-代码详解

执行序列化对象操作,并将信息保存到文件
java序列化serialVersionUID-的作用-代码详解

查看文件内的信息
java序列化serialVersionUID-的作用-代码详解

尚未修改实体类,此时进行反序列化操作,查看输出信息
java序列化serialVersionUID-的作用-代码详解

修改实体类,注释掉 name1 age1 新增属性 nage3 age3
java序列化serialVersionUID-的作用-代码详解


修改实体类后,反序列化查看输出信息
java序列化serialVersionUID-的作用-代码详解

【代码地址】



白嫖不点赞吗.........

java序列化serialVersionUID-的作用-代码详解