为什么我们在序列化过程中使用 serialVersionUID

26 浏览
0 Comments

为什么我们在序列化过程中使用 serialVersionUID

这个问题已经有了答案:

什么是serialVersionUID?我为什么要使用它?

在我的面试中,我得到了一个问题:如何实现序列化,我回答是

public class SerializationSample {
    public static void main(String args[]) {
        ...........
        FileOutputStream fos = new FileOutputStream(outFile);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(serializableObject);
        ............
}
class SerializationBox implements Serializable {
    ............
    ............
}

但面试官告诉我,这会序列化整个对象,并问了两个问题:

  1. 如果我想要序列化单个对象,您将如何编写代码?
  2. 为什么我们在序列化期间使用long_integer id?

请帮我找到这个问题的答案

admin 更改状态以发布 2023年5月21日
0
0 Comments

让我引用一段来自相似而已经解答的问题的精华:

serialVersionUID代表您的类版本号,如果您的当前类版本与先前版本不兼容,则应该增加它。

并且

自动生成的UID是基于类名、实现接口和所有公共和受保护成员生成的。任何这些的任何更改都将更改serialVersionUID。因此,如果您确定只会序列化一个版本的类(跨进程或在以后的某个时间从存储中检索),则不需要将它们弄乱。

我建议您访问这个链接,像往常一样,搜索网络。

希望能够帮助您。

0