序列化和反序列化
2015-02-23 16:00
211 查看
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。
把对象转换为字节序列的过程称为对象的序列化。
把字节序列恢复为对象的过程称为对象的反序列化。
通过值将对象从一个应用程序域发送到另一个应用程序域中,当两个进程在进行远程通信时,彼此可以发送各种类型的数据,无论是何种数据类型,都将以二进制序列的形式在网络上传送。所以两个进程在进行通信时,不可避免的需要将传输对象序列化以二进制的形式进行传送。
2、将对象信息转换成可存储形式:
序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
什么是序列化和反序列化:
序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。
把对象转换为字节序列的过程称为对象的序列化。
把字节序列恢复为对象的过程称为对象的反序列化。
为什么要将对象序列化:
1、跨进程传递数据:通过值将对象从一个应用程序域发送到另一个应用程序域中,当两个进程在进行远程通信时,彼此可以发送各种类型的数据,无论是何种数据类型,都将以二进制序列的形式在网络上传送。所以两个进程在进行通信时,不可避免的需要将传输对象序列化以二进制的形式进行传送。
2、将对象信息转换成可存储形式:
序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
序列化的实例 :
序列化概念的提出和实现,可以使我们的应用程序的设置信息保存和读取更加方便。我们举两个例子让大家更好的理解序列化和反序列化: 1、比如,一个计数器,数值为2,我们可以用字符串“2”表示。反过来,字符串”2”也可代表一个计数器实例。
2、又比如,在A机器上产生一个实例,初始化完毕,然后可以序列化,通过网络传送到B机器,然后反序列化,得到对象实例,之后再执行某些业务逻辑,得到结果,再序列化,返回给A机器,这样A机器得到对象实例,同时获得执行结果。这个例子是目前比较先进的“智能代理(一种动态分布式服务)”的原理。
相关文章推荐
- Java学习笔记之对象的序列化和反序列化
- Java序列化反序列化、Serializable、Parcelable 知识总结
- C# 序列化与反序列化方法
- Java 的序列化 和 反序列化 总结
- 学习C# XmlSerializer 序列化反序列化XML
- serialVersionUID序列化和反序列化的概念
- C++序列化以及反序列化-续
- java IO之对象的序列化和反序列化
- java 序列化和反序列化
- 序列化与反序列化之Parcelable和Serializable浅析
- Android Intent 序列化反序列化
- 类的序列化和反序列化、对象的归档个解档
- Java基础学习总结——Java对象的序列化和反序列化
- Java序列化,如何实现序列化和反序列化?常见的序列化协议有哪些?
- java中的序列化(Serializable)和反序列化
- Lua里实现将table转成字符串(序列化)和将字符串转换回table(反序列化)
- 序列化对象和反序列化对象
- .NET中JSON数据进行序列化和反序列化
- XmlSerializer 对象的Xml序列化和反序列化