深入分析java的序列化与反序列化-java开发java经验技巧

深入分析java的序列化与反序列化-java开发java经验技巧

ID:30877111

大小:105.00 KB

页数:11页

时间:2019-01-03

深入分析java的序列化与反序列化-java开发java经验技巧_第1页
深入分析java的序列化与反序列化-java开发java经验技巧_第2页
深入分析java的序列化与反序列化-java开发java经验技巧_第3页
深入分析java的序列化与反序列化-java开发java经验技巧_第4页
深入分析java的序列化与反序列化-java开发java经验技巧_第5页
资源描述:

《深入分析java的序列化与反序列化-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、深入分析Java的序列化与反序列化-编程开发技术深入分析Java的序列化与反序列化原文出处:Hollis序列化是一种对象持久化的手段。普遍应用在网络传输、RM等场景中。本文通过分析ArrayList的序列化來介绍Jeivei序列化的相关内容。主要涉及到以卜•几个问题:怎么实现Java的序列化为什么实现了java.io.Serializable接口才能被序列化transient的作用是什么怎么自定义序列化策略自定义的序列化策略是如何被调用的ArrayList对序列化的实现有什么好处Java对象的序列化Java平台允许我们在内存中创建可复用的Jewel对象,但一般情况下,只有当JVM处于

2、运行时,这些对彖才可能存在,即,这些对彖的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。使用兀腹对象序列化,在保存对象时,会把其状态保存为一组字节,在未來,再将这些字节组装成对彖。必须注意地是,对彖序列化保存的是对彖的”状态”,即它的成员变量。由此可知,对象序列化不会关注类中的静态变量。除了在持久化对象时会用到对象序列化之外,当使用RMI(远程方法调用),或在网络中传递对象时,都会用到对象序列化。Java序列化API为处理对象序列化提供了一个标准

3、机制,该API简单易用。如何对Java对象进行序列化与反序列化在Java中,只要一个类实现了java.io.Serializable接口,那么它就可以被序列化。这里先來一段代码:code1创建一个User类,用于序列化及反序列化packagecom.hollis;importjava.io.Serializable;importjava.util.Date;/***Createdbyhollison16/2/2.*/publicclassUserimplementsSerializable{privatcStringname;privateintage;privateDatebirt

4、hday;privatetransientStringgender;privatestaticfinallongserialVersionUID=-6849794470754667710L;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this,name=name;}publicintgetAgeO{returnage;}publicvoidsetAge(intage){this,age=age;}publicDategetBirthday(){returnbirthday;}publicvoidset

5、Birthday(Datebirthday){this.birthday二birthday;}publicStringgetGcnder(){returngender;publicvoidsetGender(Stringgender){this,gender=gender;}©OverridepublicStringtoStringO{return〃User{〃+name=+name++〃〃.,age=+age+气gender=,z+gender+气birthday二〃+birthday+}}code2对User进彳亍序列化及反序列化的Demopackagecom.hollis;i

6、mportorg.apache,commons,io.FileUtils;importorg.apache,commons.io.IOUtils;importjava,io.*;importjava.util.Date;/***Createdbyhollison16/2/2.*/publicclassScrializablcDcmo{publicstaticvoidmain(String[]args){//InitializesTheObjectUseruser二newUser();user.sctNamc(〃hollis〃);user.setGender(zzmale,z);use

7、r.setAge(23);user.setBirthday(newDate());System,out.println(user);//WriteObjtoFileObjectOutputStreamoos=null;try{oos=newObjectOutputStream(newFilcOutputStrcam(,ztcmpFi10?,));oos.writeObject(user);}catch(lOExceptione){e.printStackT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。