程序员社区

(Java基础面试题)你不定义serialVersionUID, 会发生什么?

SerialVersionUID 是定义在类中的public static final 常量。如果你没有显示指定,当该实例对象持久化式,java编译器自动生成一个SerialVersionUID。系统生成UID是会考虑到类的属性的(具体表现为类的hashcode). 如果没有指定SerialVersionUID,当类的成员有变化会导致系统重新产生一个SerialVersionUID,而旧的实例化的类对象将无法正确的还原出状态。Java序列化过程时,依据正确的SerialVersionUID来还原序列化对象的状态。

Java 序列化过程依赖于正确的序列化对象恢复状态的, ,并在序列化对象序列版本不匹配的情况下引发java.io.InvalidClassException无效类异常

Java面试题

赞(0) 打赏
未经允许不得转载:IDEA激活码 » (Java基础面试题)你不定义serialVersionUID, 会发生什么?

一个分享Java & Python知识的社区