下载此文档

java序列化与反序列化.doc


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
java序列化与反序列化一、什么是序列化?序列化是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是一种将Java对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换回Java对象原有的状态。序列化的思想是“冻结”对象状态,传输对象状态(写到磁盘、通过网络传输等等),然后“解冻”状态,重新获得可用的Java对象。所有这些事情的发生有点像是魔术,这要归功于ObjectInputStream/ObjectOutputStream类、完全保真的元数据,以及程序员愿意用Serializable标识接口标记他们的类,从而“参与”这个过程。把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。二、为什么要序列化?什么情况下需要序列化?当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送,接收方则需要把字节序列再恢复为对象。对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。 java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。序列化能将对象转成如XML/Bit流,方便对象的磁盘存储、网络传输(webService,RMI)。对象的寿命常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复以延续其状态。如何做到程序终止后对象继续存在?如何将对象在网络上传输?三、相关接口和类(1)Serializable接口和Externalizable接口(2)ObjectOutput接口:它继承DataOutput接口并且支持对象的序列化,其内的writeObject()方法实现存储一个对象。(3)ObjectOutputStream类:它继承OutputStream类并且实现ObjectOutput接口。利用该类来实现将对象存储(调用ObjectOutput接口中的writeObject()方法)。(4)ObjectInput接口:它继承DataInput接口并且支持对象的序列化,其内的readObject()方法实现读取一个对象。(5)ObjectInputStream类:它继承InputStream类并且实现ObjectInput接口。利用该类来实现将对象存储(调用ObjectInput接口中的readObject()方法)。四、怎么实现序列化?要被序列化的类必须实现Serializable接口或者Externalizable接口之一。实现Serializable接口,不需要实现任何方法,只是一个标记接口。.;;lassPersonimplementsSerializable{ /** *serialversionid */ privatestaticfinallongserialVersionUID=-2858407989098901728L; publicPerson(Stringname,intage){ =name; =age; } privateStringname; privateintage; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ =age; } publicStringtoString(){ return"[Person:name="+name+"age="+age+"]"; } }()方法,将对象保存到磁盘文件,文件后缀名可以任意起。()方法,将对象反序列化为原始对象。如果同时序列化多个对象到一个序列化文件时,读取的顺序应与写入的顺序保持一致。.;;

java序列化与反序列化 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2072510724
  • 文件大小101 KB
  • 时间2020-08-09
最近更新