serialVersionUID

serialVersionUID

serialVersionUID:定义为代表类定义的版本,在反序列化时,jvm会将字节流状态的类中的serialVersionUID与本地类中的serialVersionUID进行比较,如果相同,则进行序列化,不相同就抛InvalidClassException异常。

在实现序列化接口的时候,我们一般显式的给serialVersionUID设置一个固定值。这样无论类后期增加成员变量还是删除成员变量,都不会发生错误。

如果在实现序列化接口的时候,没有显式指定一个固定值,java序列化机制是会自动生成一个serialVersionUID,这个自动值会受类名称、它所实现的接口、以及所有的共有的私有的和受保护的成员变量的影响。如果这些值改变,那么这个自动值也会改变。在反序列化时,便会出错。

一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注