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

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

  

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

原文地址:https://www.cnblogs.com/ConstXiong/p/11871224.html