为什么我们在序列化期间使用serialVersionUID

时间:2013-09-18 11:17:49

标签: java serialization

在我的采访中,我有一个问题如何实现序列化,我给出了答案

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 {
    ............
    ............
}

但是采访者说,这将序列化整个对象,他问了2个问题

  1. 如果我想序列化单个对象,您将如何编写代码?
  2. 为什么我们在序列化期间使用long_integer id?
  3. 请任何人帮我找到这个问题的答案

1 个答案:

答案 0 :(得分:1)

让我引用similar and already answered question

的精华
  

serialVersionUID表示您的类版本,如果您的类的当前版本与其先前版本不向后兼容,则应增加它。

  

自动生成的UID基于类名,已实现的接口以及所有公共成员和受保护成员生成。以任何方式更改任何这些都将更改serialVersionUID。因此,只有当您确定不会将一个以上版本的类序列化时(无论是跨进程还是稍后从存储中检索),您都不需要弄乱它们。

我建议您访问that link,并一如既往地搜索网络。

希望有所帮助。