Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SerialVersionUID Java-SerialVersionUID如何工作?_Java_Serializable_Serialversionuid - Fatal编程技术网

SerialVersionUID Java-SerialVersionUID如何工作?

SerialVersionUID Java-SerialVersionUID如何工作?,java,serializable,serialversionuid,Java,Serializable,Serialversionuid,您好,我有一个关于Java中SerialVersionUID的问题。 如果我为类a生成SerialVersionUID, A的两个实例具有相同的SerialVersion about类和另一个唯一的对象序列,与object1和object2不同?或者如何? 我不明白,请回答我。谢谢。SerialVersionUID是标识类版本的方法。因此,同一类的所有对象都将具有相同的SerialVersionUID。 但是,如果对类进行更改,建议更改SerialVersionUID。然后在不兼容的情况下,对象

您好,我有一个关于Java中SerialVersionUID的问题。 如果我为类a生成SerialVersionUID, A的两个实例具有相同的SerialVersion about类和另一个唯一的对象序列,与object1和object2不同?或者如何?
我不明白,请回答我。谢谢。

SerialVersionUID是标识类版本的方法。因此,同一类的所有对象都将具有相同的SerialVersionUID。 但是,如果对类进行更改,建议更改SerialVersionUID。然后在不兼容的情况下,对象的序列化将失败

见:

serialVersionUID用于对象的版本控制

如果我们没有在类中定义serialVersionUID 如果在类中进行了修改,那么我们将无法反序列化 我们的类是因为java编译器为 修改后的类将不同于旧的序列化对象和 反序列化过程将以抛出 java.io.InvalidClassException

运行时的序列化与每个可序列化类相关联 一个称为serialVersionUID的版本号,在 反序列化以验证 序列化对象已为该对象加载了 与序列化兼容。 serialVersionUID对象1和对象2


它将是相同的,因为串行版本uid是静态的,即类级别

SerialVersionUID是静态字段,因此它属于类,而不属于任何实例。