1. Java序列化的本质是将一个对象转化为一串二进制表示的字节数组。通过保存活着转移这些字节数组来达到持久化的目的。
  2. 需要持久化,对象必须继承java.io.Serializable接口。
  3. 序列化的数据主要包括下列几部分:
    1. 序列化头文件;
    2. 序列化类的描述;
    3. 对象中各个属性的描述;
    4. 对于父类信息的描述;
    5. 对象属性值的描述;
  4. 复杂情况序列化的总结:
    1. 当父类继承了Serializable接口时,所有的子类都可以被序列化。
    2. 子类实现了Serializable接口,父类没有,父类中的属性不能被序列化(不报错,数据会丢失);但是子类中的属性仍能正确序列化。
    3. 如果序列化的属性是对象,则这个对象也必须实现序列化Serializable接口,否则会报错。
    4. 在反序列化时,如果对象的属性有修改或者删减,则修改的部分属性会丢失,但不会报错。
    5. 在反序列化时,如果serialVersionUID被修改,则反序列化时会失败。
09-08 11:24