serialVersionUID的作用及生成方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuzhong8809/article/details/83416579

小结一下:

1 值的作用:

用于判断序列化文件是否已经失效(过期)。

序列化的时候会把这个ID写到文件里。

读的时候会把这个ID和代码里的ID比较,如果不一致,表示文件里的已经失效。(will result in an InvalidClassException.)

2 值写为多少:

你可以写为1L,也可以让ECLIPSE帮你生成一个。

3 不写会有什么问题?

不写的话,序列话的时候,JVM会帮你动态的生成一个。这个动态生成的算法可能在不同的虚拟机里不一样,也就是不同的环境下生成的可能不同。这就会有一个问题,你序列化产生的文件,别人读的时候会 InvalidClassException。

所以为了避免这个问题,这个值要写!

参看:

Understand the serialVersionUID

http://www.mkyong.com/java-best-practices/understand-the-serialversionuid/

Java : How to generate serialVersionUID

http://www.mkyong.com/java/how-to-generate-serialversionuid/

https://docs.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html
 

猜你喜欢

转载自blog.csdn.net/wuzhong8809/article/details/83416579