serialVersionUID
javaBean对象是存储在JVM堆内存里的,为了将javaBean对象进行持久化和传输,引入了序列化和反序列化。
序列化:将javaBean对象转换成二进制字节:可存储(内存—硬盘)、进行传输(在网络传输等)
反序列化:上述操作反转成javaBean。
序列化和反序列化会用Serializable
是否一致来判断能否序列化,为了转换中不发生异常:
- 类必须实现
Serializable
接口,才能进行序列化和反序列化; 定义
serialVersionUID
使用:- 必须给类指定
serialVersionUID
,否则jvm会生成默认的serialVersionUID
,而如果后续类的字段、属性发生变化,自动生成的serialVersionUID
也会改变,这将导致异常。 - 在同一个版本中同一个类,
serialVersionUID
必须一致,不同版本考虑架构是否兼容上一版本选择修改或者保持一致,一般都是保持一致。
- 必须给类指定
serialVersionUID
的生成:
我们使用mybatis
的po生成工具时,生成的serialVersionUID
一般=1L,这里我们可以不修改,也可以使用idea安装的插件GenerateSerialVersionUID
来生成,插件应该是根据hash等字段、属性用某个算法生成的唯一id,推荐使用插件生成。如果觉得手动生成烦琐,还可以安装插件saveAction
,直接设置保存时生成serialVersionUID
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。