对象的串行化和反串行化
来源:互联网 发布:手机插件清理软件 编辑:程序博客网 时间:2024/05/21 07:15
串行化(serialization)是指将一个对象的当前状态转换成字节流(a stream of bytes)的过程,而反串行化(deserialization)则指串行化过程的逆过程,将字节流转换成一个对象,打回原形。
一、串行化的意义:
1:解决Web应用程序的无状态弊端
一旦将某一对象串行化,得到的字节可以存储在文件、数据库,或内存中—— 只要是可以存储的任何地方。需要恢复对象时,仅仅只需从它存储的位置反串行化即可。对象固有的这种特性对于无状态的Web应用程序是非常重要的,因为它允许重要的状态信息可以在用户请求之间保留。
2:应用程序边界之间传递对象
串行化也允许对象在应用程序边界之间传递,编程人员可以将描述对象状态的字节流在网络上传递,并在另一端反串行化成一个匹配的对象。从本质上讲,串行化允许对象以“数值”的方式传递给另一个应用程序。
二:串行化对象
在java中串行化对象必须:
1、该对象的类必须实现Serializable接口
2、该对象的串行化成员必须是非静态成员变量,即不能保存任何的成员方法和静态的成员变量,而且串行化保存的只是变量的值,对于变量的任何修饰符,都不能保存。而对于某些类型的对象,其状态是瞬时的,这样的对象是无法保存其状态的,例如一个Thread对象,或一个FileInputStream对象,对于这些字段,我们必须用transient关键字标明 。
注:保存任何的成员方法和静态的成员变量没有任何的意义,因为,对象的类已经完整的保存了他们,如果再串行化他们还有什么意义呢?呵呵
3、要串行化一个对象,必须与一定的对象输入/输出流联系起来,通过对象输出流将对象状态保存下来,再通过对象输入流将对象状态恢复。
三:具体实现
1、串行化的对象:Person类
2、串行化和反串行化
3.测试结果
erbao
10
null
因为pwd transient ,不能被串行化
- 对象串行化和反串行化
- 对象的串行化和反串行化
- java中对象的串行化和反串行化
- PHP对象的串行化与反串行化
- PHP面向对象之对象串行化和反串行化
- 对象的串行化
- 对象的串行化
- 对象的串行化
- PHP串行化(序列化)和反串行化
- 数组的串行化与反串行化
- PHP串行化与反串行化的调用
- C# 串行化与反串行化
- C# 串行化与反串行化
- PHP中实行对数组的串行化和反串行化
- 对象的串行化(Serialization)
- 对象的串行化(Serialization)
- java对象的串行化
- java串行化——Java中对象的串行化(Serialization)和transient关键字
- 在Function原型上扩展
- 查询所有对应了指定主键的外键的表
- [框架那点事儿-快速开发季]编写自己的数据持久层(1)
- tomcat6启动出现的错误 Exception starting filter struts com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance
- [原创]龙之谷服务器构架结构设计实现分析
- 对象的串行化和反串行化
- Windows Mobile下的窗体半透明实现
- Homebrew: The missing package manager for OS X
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页,获取用户自定义控件里面的子控件的方法
- MFC消息映射与消息传递内幕
- Fedora8上Xen源码安装
- Windows mobile上获取输入光标位置(转)
- C# FileUpload用法、获得上传图片详细信息 及 删除服务器文件
- 实现Javascript退出页面弹出对话框