一、 serialVersionUID的作用:
serialVersionUID在类序列化与反序列化的过程中,都起着很重要的作用,每个类都有一个特定的serialVersionUID,在类反序列化的过程中都会判断serialVersionUID来判断类的兼容性。如果待序列化的对象的serialVersionUID不同,则在反序列化的时候就会抛出InvalidClassException异常;所以在编程的时候显示的申明serialVersionUID就很有必要。
二、自定义serialVersionUID的三个优点:
- 提高程序的执行效率:因为未显示的申明serialVersionUID,程序就会在执行的时候自己计算出一个serialVersionUID的值。所以显示的申明就会省略这个过程,大大提高了程序运行的效率;
- 提高程序在不同平台的兼容性:因为在各个平台的编译器中计算serialVersionUID时候有可能会采用不同的计算方式,这样则会导致一个平台的序列化对象在到另一个平台无法序列化的问题;
- 增强层序各个版本的兼容性:通常情况下,每个类都有唯一的serialVersionUID,所以在后期对类进行修改的时候,未显示申明的serialVersionUID就有可能发生变化,这就会导致类在修改前对象序列化的文件将无法进行反序列化。