IO流——(17) Serializable

Serializable:用于给被序列化的类加入ID号。 用于判断类和对象是否是同一个版本。 

在序列化与反序列化过程中,只要当尸体有任何变动,包括字段权限、字段数量发生改变,Java都会改变本地序列化类的ID版本。这种改变算法是自动进行的。

在对象序列化完成以后:

权限改变

    public   String name;
    private  int age;

再次进行反序列化:

异常发生

查看API查到该异常:

就是因为我改变了权限生成了一个新的ID存于本地,与反序列化后生成的obj.object中的ID不匹配导致的异常。

当然我们也可以显示的声明该ID,就可以固定这个ID了。

/**
     * ID字段随意定义
     */
    private static final long serialVersionUID = 1515151;

Serializable序号ID在Web开发中常见。

在Web开发中服务器对对象进行临时本地存储,当服务器奔溃时,重启服务器,读取硬盘数据,恢复会话数据。

发布了186 篇原创文章 · 获赞 45 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/zhanshixiang/article/details/103913483