现在的位置: 首页 > 综合 > 正文

JAVA Serializable 类中的Serial Version ID

2013年08月28日 ⁄ 综合 ⁄ 共 323字 ⁄ 字号 评论关闭

在JAVA中,当需要把一个类序列化的时候,显示提供一个serialVersionUID有什么用呢?

 

a)小幅性能提升,免除JVM运行时对这个值的计算。

 

b)避免java.io.InvalidClassException,不同的JVM对serialVersionUID的计算方法可能不一样,就算类的定义和序列化后的对象是一致的,也可能从JVM-A里序列化后的对象到达JVM-B后,JVM-B认为 Class Invalid。

还有,对象在序列化后,Class定义被改变了,如果明确提供了serialVersionUID,只有serialVersionUID不变,对象仍然能被正常的deserialize。【不过,best practise最好不要这么做】

 

抱歉!评论已关闭.