1. 程式人生 > >serialVersionUID的作用

serialVersionUID的作用

str 復制 tran 反序列化 ans 深度 變量 out 實現

淺克隆:復制對象,不復制對象的引用;

深克隆:復制對象,以及對象的引用。

總結:

  1、在java中,只要一個類實現了java.io.Serializable接口,那麽它就可以被序列化;

  2、通過ObjectOutputStream和ObjectInputStream對對象進行序列化和反序列化操作;

  3、對象是否允許被反序列化,不僅僅是取決於對象的代碼是否一致,同時還有一個重要的因素(UID);

  4、序列化不保存靜態變量;

  5、要想父類對象也參與序列化操作,那麽必須要讓父類也實現Serializable接口;

  6、Transient關鍵字,主要是控制變量是否能夠被序列化。如果沒有被序列化的成員變量反序列化後,會被設置成出初始化值,比如 String -> null;

  7、通過序列化操作實現深度克隆;

主流的序列化技術有哪些:

  json、Hessian(2)、xml、protobuf、kryo、msgPack、FST、thrift、protostuff、avro

serialVersionUID的作用