serialVersionUID的作用是序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。如果序列化中类增加了变量或删除了变量,为了兼容前版本的反序列化,必须声明serialVersionUID,如果不声明,jvm会默认为这个类生成一个serialVersionUID。将导致新版本和旧版本的不兼容。报错如下:
serialVersionUID声明的两种方式:
第一种(1L):
第二种(随机值):
两种方式的区别:serialVersionUID两种方式没有区别,可根据自己的编码习惯进行声明。