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
在这里插入图片描述


修改实体类后,反序列化查看输出信息
在这里插入图片描述

【代码地址】



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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37969197/article/details/106258092