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开发中服务器对对象进行临时本地存储,当服务器奔溃时,重启服务器,读取硬盘数据,恢复会话数据。