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
在這裏插入圖片描述


修改實體類後,反序列化查看輸出信息
在這裏插入圖片描述

【代碼地址】



白嫖不點贊嗎.........

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章