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

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

 

 

  

来一道刷了进BAT的面试题?

posted @ 2019-11-16 11:31  ConstXiong  阅读(521)  评论(0编辑  收藏  举报