serialVersionUID

什么是serialVersionUID

serialVersionUID表示:“串行化版本统一标识符”(serial version universal identifier),简称UID
serialVersionUID必须定义成下面这种形式:static final long serialVersionUID = xxxL;

  • 一个是默认的1L,比如:private static final long serialVersionUID = 1L;
  • 一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,

为什么要serialVersionUID

序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。

  1. 不一致的serialVersionUID,是无法序列化/反序列化
  2. 如果未显示设置serialVersionUID值,假设修改类的某个field,新生成的
    serialVersionUID 与即将要反序列化的serialVersionUID 不一致,导致失败
  3. 设置一样的serialVersionUID ,可以让新版本的与老版本兼容,完成序列化,只不过发生改动的属性会变成null
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容