为什么要序列化Serialization

一:概念

MSDN的定义:序列化是将对象状态转换为可保持或可传输的形式的过程。序列化的补集是反序列化,后者将流转换为对象。这两个过程一起保证数据易于存储和传输

二: 什么时候使用序列化:

1)对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。
2)对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。

三 :用处

1)数据需要序列化以后才能在服务端和客户端之间传输
不序列化也可以传输,但是无法跨平台,安全性也无法保障
在进程内通信,也可以做到更高的安全性,对象不再通过调用栈交互,而是通过代理或通道。
2)序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化
我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时会引发一些问题,而序列化机制正是用来解决这些问题的!

3)描述数据的传输格式,这样可以方便自己组织数据传输格式,以至于避免一些麻烦及错误
如果是跨平台的序列化,则发送方序列化后,接收方可以用任何其支持的平台反序列化成相应的版本,比如 Java序列化后, 用.net、phython等反序列化

猜你喜欢

转载自blog.csdn.net/qq_43688472/article/details/85266435