序列化ID的作用?
来源:4-5 店铺注册之Service层的实现
oooooooooooooooo
2019-04-03
翔仔老师好,不太明白这个类里面添加随机序列化ID的作用是什么?能解释下嘛。
另外我没有生成随机序列化ID也没有报错呀?
似乎IDEA默认是不支持自动生成序列化ID的,我后来添加了serialVersionUID插件,就能够自动生成了,
也在此处设置一下就有warn警告了。
写回答
2回答
-
同学好,显式地定义serialVersionUID有两种用途:
1)在某些场合,希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有相同的serialVersionUID;在某些场合,不希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有不同的serialVersionUID。2)当你序列化了一个类实例后,希望更改一个字段或添加一个字段,不设置serialVersionUID,所做的任何更改都将导致无法反序化旧有实例,并在反序列化时抛出一个异常。如果你添加了serialVersionUID,在反序列旧有实例时,新添加或更改的字段值将设为初始化值(对象为null,基本类型为相应的初始默认值),字段被删除将不设置。
232019-12-25 -
qq_王男神_03470216
2019-04-04
要知道序列化和反序列化的区别, 一个是将对象转换成字节流(正), 一个是字节流转换成对象(反),Java的序列化机制是通过在运行时判断类的serialVersionUID是不是一致,在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,不然就会报异常
322019-04-04
相似问题