Java序列化技术

Posted 未来的一片天0209

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java序列化技术相关的知识,希望对你有一定的参考价值。

  Java序列化技术是将一个Java对象转化成一串二进制表示的字节数组,通过保存或者转移这些字节数组数据达到持久化的目的。需要序列化,对象需要实现java.io.Serializable接口。反序列化则是相反的过程,将这个字节数组数据再重新狗造成对象。那么序列化的数据主要包含下面5部分信息:

         1.是序列化头文件

              主要是使用的序列化协议、序列化协议版本等

         2. 是要序列化的类的描述

         3. 是对象中各个属性的描述

         4. 输出对父类信息的描述(如果有父类,信息描述同2)

         5. 输出对象的属性项的实际值(如果属性项是一个对象,那么这里还将序列化这个对象)

下面是对序列化过程中一些复杂情况的总结:

  1. 当父类实现了java.io.Serializable接口,所有子类都可以被序列化。

        2. 子类实现了java.io.Serializable接口,父类没有,则父类中的属性不能序列化(不报错,数据会丢失,但是在子类中属性仍可以正确序列化)

        3. 如果序列化的属性是一个对象,则这个对象必须实现java.io.Serializable接口,否则会报错。

        4. 在反序列时,如果对象的属性有修改或删减,则修改的部分属性会丢失,不会报错。

        5. 在反序列时,如果SerialVersionUID被修改,则反序列时会失败。

 

以上是关于Java序列化技术的主要内容,如果未能解决你的问题,请参考以下文章

Java序列化技术

Java技术专题「性能优化系列」针对Java对象压缩及序列化技术的探索之路

技术分享:Java 序列化

序列化之Java默认序列化技术(ObjectOutputStream与ObjectInputStream)

Java序列化技术

java基础-----Java 序列化的高级认识