凡是实现Serializable接口(标识接口)的类都有一个表现序列化版本标识符的静态常量:
private static final long serialVersionUID;
来表明类的不同版本间的兼容性。
在完成序列化操纵后,如果对序列化对象举行了修改,那么我们再举行反序列化就会抛出InvalidClassException异常。 因为serialVersionUID缺失(没有显式分配)大概serialVersionUID发生了变革, serialVersionUID的作用在此体现——对序列化对象举行版本控制,有关各版本反序加化时是否兼容。制止混乱。
class Person implements Serializable {
private static final long serialVersionUID = 1234567890123456789L;