Effective Java 读书笔记之十 序列化

时间:2023-03-09 13:04:12
Effective Java 读书笔记之十 序列化

一、谨慎地实现Serializable接口

  1、一旦一个类被发布,就大大地降低了“改变这个类的实现”的灵活性。

  2、仔细设计类的序列化形式而不是接受类的默认虚拟化形式。

  3、反序列化机制是一个“隐藏的构造器”,具备与其他构造器相同的特点。

二、考虑使用自定义的序列化形式

三、保护性地编写readObject方法

  1、对于对象引用域必须保持为私有的类,要保护性地拷贝这些域中的每个对象。

  2、检查失败要抛出InvalidObjectException异常,检查应该跟在所有的保护性拷贝之后

  3、无论直接还是间接,都不要调用类中任何可覆盖的方法。

四、对于实例控制,枚举类型优先于readResolve方法

五、考虑用序列化代理代替序列化实例