serialVersionUID的作用

浅克隆:复制对象,不复制对象的引用;

深克隆:复制对象,以及对象的引用。

总结:

  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

原文地址:https://www.cnblogs.com/hujinshui/p/7643623.html