IDEA类实现序列化接口自动生成serialVersionUID

IDEA类实现序列化接口自动生成serialVersionUID

在编写类的时候,有时候会需要实现序列化接口,序列化的作用是就是可以把对象存到字节流,然后可以恢复。所以你想,如果你的对象没实现序列化怎么才能进行网络传输呢,要网络传输就得转为字节流,所以在分布式应用中,你就得实现序列化,如果你不需要分布式应用,那就没那个必要实现序列化。

在IDEA编译器中,默认是不会自动生成serialVersionUID的,需要在设置里进行设置。

下面就截个图展示一下怎么设置,其实很简单,打开setting,然后如下图,勾选后点击 “OK”
IDEA类实现序列化接口自动生成serialVersionUID
然后可以重启一下IDEA(有些版本不需要重启)在实现序列化接口的类里面,将光标放在类名上然后按下Alt+Enter就会有提示,或者点击类名最左边那个黄色灯泡也行,然后点击Add"serialVersionUID" field 就行了。

IDEA类实现序列化接口自动生成serialVersionUID

为什么要实现序列化接口呢

  1. 存储对象在存储介质中,以便在下次使用的时候,可以很快捷的重建一个副本。
  2. 便于数据传输,尤其是在远程调用的时候

什么时候要序列化

首先,序列化的目的有两个,第一个是便于存储,第二个是便于传输。我们一般的实体类不需要程序员再次实现序列化的时候,请想两个问题:第一:存储媒体里面,是否是有其相对应的数据结构?第二:这个实体类,是否需要远程传输(或者两个不同系统甚至是分布式模块之间的调用)?

序列化操作用于存储时,一般是对于NoSql数据库,而在使用NoSql数据库进行存储时,用“freeze”这个说法来理解是再恰当不过了,在NoSql数据库中,找不出个varchar,int之类的数据结构,但我们又确实需要进行存储,那么,此时程序员就需要将对象进行序列化了!!!

也就是说需要或者可能需要被远程调用,这就是序列化便于传输的用途

我个人对于序列化的理解就这么多,参照了网上一些资料的,在有不足的地方,还望各位高手指点!