[toc]
定义####
序列化:将对象或数据结构转换成约定格式数据的过程。
反序列化:将约定格式的数据转换成对象或数据结构的过程。
通常我们将这种“约定格式的数据”称之为序列化协议。根据协议的特点序列化协议可以细分为文本序列化协议(以下简称文本协议)和二进制序列化协议(以下简称二进制协议)。文本协议是指序列化的数据肉眼可以阅读,比如XML协议,而二进制协议序列化的数据不便于阅读,比如Java中标准的Serializable协议。序列化协议主要应用于两个方面,第一:数据网络传输;第二:数据持久化。在当今这个纷繁复杂的世界上,每一个程序、每一个系统都会有数据的持久化过程以及系统与系统之间都会有数据往来,互通有无。
应用####
数据网络传输#####
数据网络传输是一个比较宽泛的概念,我们首先得理清楚序列化协议在其中指哪一块的内容。简单点讲,数据网络传输分为传输协议和序列化协议。传输协议是针对传输方式的,序列化协议是针对传输内容的。常用的传输协议有HTTP、TCP/IP等;常用的序列化协议有JSON、XML等。举个例子,武汉的小明要到广州出差,他从飞机、高铁和自驾等多种交通工具中选择了乘坐高铁。于是他到火车站买了一张武汉到广州的火车票,车票上给他分配是12车09A号。于是他上车,按照自己的座位号入座前往广州。高铁就是传输协议的一种,车辆内部乘客有序的入座就是序列化协议的一种。同样是高铁,里面可以按照各种顺序排列乘客;同一种传输协议可以承载不同的序列化数据。
现有两个进程,一个是程序A另一个是程序B,程序A中有一个对象User,现要把这个User数据数据传给程序B使用。为了实现这个需求,A、B之间需确定