可序列化对象为什么要定义serialversionUID值?

Posted constxiong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可序列化对象为什么要定义serialversionUID值?相关的知识,希望对你有一定的参考价值。

  • SerialVersionUid 是为了序列化对象版本控制,告诉 JVM 各版本反序列化时是否兼容
  • 如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClassException异常
  • 仅增加了一个属性,希望向下兼容,老版本的数据都保留,就不用修改
  • 删除了一个属性,或更改了类的继承关系,就不能不兼容旧数据,这时应该手动更新 SerialVersionUid


 


技术图片

 

所有资源资源汇总于公众号

技术图片
 

 

以上是关于可序列化对象为什么要定义serialversionUID值?的主要内容,如果未能解决你的问题,请参考以下文章

Sonarqube 错误:类定义了一个计算的 serialVersionUID,它不等于计算的值

为什么对象序列化要定义serialVersionUID

如何在XML序列化时隐藏可为null的的字段

Java网络多线程编程——对象流错误导致Connection reset

什么是对象序列化,为什么要使用

为什么要对对象进行序列化?