当前位置: 首页 > 后端技术 > Java

serialVersionUID

时间:2023-04-01 18:12:48 Java

serialVersionUIDjavaBean对象存放在JVM堆内存中。为了持久化和传递javaBean对象,引入了序列化和反序列化。序列化:将javaBean对象转化为二进制字节:可以存储(内存-硬盘),可以传输(通过网络传输等)反序列化:将上述操作逆向转化为javaBean。序列化和反序列化都会通过Serializable是否一致来判断是否可以序列化。为了在转换时不引发异常:类必须实现Serializable接口,才能进行序列化和反序列化;定义serialVersionUID的使用:必须为类指定serialVersionUID,否则jvm会生成默认的serialVersionUID,如果后续类的字段和属性发生变化,自动生成的serialVersionUID也会发生变化,从而引发异常。对于同一个版本中的同一个类,serialVersionUID必须保持一致。不同版本考虑架构是否兼容上一版本,选择修改或保持不变,一般保持不变。serialVersionUID的生成:我们在使用mybatis的po生成工具时,生成的serialVersionUID一般为=1L。这里我们可以不修改,或者使用idea安装的插件GenerateSerialVersionUID来生成。插件应该使用一定的算法根据hash等字段和属性生成的uniqueid建议由插件生成。如果觉得手动生成比较麻烦,也可以安装插件saveAction,在保存的时候直接设置serialVersionUID