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


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

【代码地址】



.........

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长毛山顶洞人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值