zoukankan      html  css  js  c++  java
  • 对象序列化

    一,应在所有类型安全的枚举以及所有支持单例设计模式的类中添加readResolve方法

    二,如果一个类具有名为serialVeisionUID的静态数据成员,它就不再需要人工的计算其指纹,而只需直接使用这个值

    三,再指定指纹后,如果这个类只有方法发生了变化,再读入新对象数据时是不会有任何问题的,如果数据域发生了变化,那么就可能有问题,在这种情况下对象输入流将尽力将流对象装换成这个类的当前版本。

      对象输入流会将这个类当前版本的数据域与被序列化版本中的数据域进行比较,对象流只会考虑非瞬时transient和非静态的数据域。如果这两个数据域之间名字匹配而类型不匹配,那么对象输入流不会尝试将     一种类型转换为另一种类型,因为这两个对象不兼容;如果序列化对象具有当前版本中没有的数据域,那么对象输入流会忽略这些额外的数据;如果当前版本具有序列化对象中所没有的数据域,那么这些数据   会被设置成默认值(对象为null,数据为0,boolean为false).

    四:readObject方法中实现额外的代码去订正版本不兼容的问题(确保所有的方法在处理null数据时都健壮)

    五:扩:为克隆对象使用对象流。

  • 相关阅读:
    谈谈关于MVP模式中V-P交互问题
    Delphi MVC模 2
    Delphi MVC模式 1
    Java长整除问题
    Java中Scanner类的简单用法
    Java中throw和throws的区别
    Java必须掌握的运算符
    Java编程多重循环
    Java实现三种简单的排序
    使用Java向properties存数据
  • 原文地址:https://www.cnblogs.com/jclx/p/12321944.html
Copyright © 2011-2022 走看看