Java序列化与反序列化

  java序列化是指java对象转化为一串二进制表示的字节数组, 通过保存和转移这些字节数据来达到持久化的目的.需要持久化的对象, 要继承java.io.Serializable接口.

  反序列化 则是相反的过程. 将字节数组重新构造为对象的过程. 

  序列化不能像class那样保存对象的全部信息.

  虽然Java的序列化能够保证对象状态持久保存,但是遇到一些对象结构复杂的情况还是比较难处李的, 下面对一些复杂的对象情况进行总结:

  • 当父类继承Serializable接口时, 子类全都能被序列化
  • 当子类实现Serializable接口时, 父类没有, 父类的属性不会被序列化(不报错, 数据丢失), 但是子类的属性仍然能够被正确序列化
  • 如果序列化的是对象, 那么这个对象必须实现Serializable接口, 否则会报错
  • 在反序列化时, 如果对象的属性有修改或删除, 则修改的信息会丢失, 不报错
  • 在反序列化时, 如果SerializableId被修改, 反序列化会失败

 

posted @ 2016-08-24 19:23  洋哥是那金色的太阳  阅读(115)  评论(0)    收藏  举报