# protocol_test **Repository Path**: wangqinlicode/protocol_test ## Basic Information - **Project Name**: protocol_test - **Description**: 咕泡学习代码 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-09-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1.在java中,只要一个类实现了java.io.Serializable接口,那么它就可以被序列化 2.通过ObjectOutputStream和ObjectInputStream对对象进行序列化和反序列化操作 3.对象是否允许被反序列化,不仅仅是取决于对象的代码是否一致,同时还有一个重要的因素(UID) 4.序列化不保存静态变量 5.要想父类对象也参与序列化操作,那么必须要让父类也实现Serializable接口 6.Transient关键字,主要是控制变量是否能够被序列化。如果没有被序列化的成员变量反序列化后,会被设置成初始值,比如String -> null 7.通过序列化操作实现深度克隆 8:父子类问题 如果父类没有实现序列化,而子类实现列序列化。那么父类中的成员没办法做序列化操作 9:序列化的存储规则 对同一个对象进行多次写入,打印出的第一次存储结果和第二次存储结果,只多了5个字节的引用关系。 并不会导致文件累加 浅克隆:复制对象,不复制对象的引用 深克隆:复制引用 感谢大家