= Serialize and Deserialize Java 示例程序

我们是在实际的数据处理的时候，需要使用 JSON 来序列化数据，但是又考虑到 JSON 在传输的时候数据过大，同时还有很多并不需要的垃圾文件。

== Protocol Buffer
我们才考虑到了 Protocol Buffer 提供的功能。

image::https://docs.ossez.com/protocol-buffers-docs/images/protocol-buffers-logo.jpg[]

== MessagePack
It’s like JSON. but fast and small.

简单来讲，它的数据格式与json类似，但是在存储时对数字、多字节字符、数组等都做了很多优化，减少了无用的字符，二进制格式，也保证不用字符化带来额外的存储空间的增加。

== 相关文档和资料
 * https://www.cwiki.us/display/ProtocolBuffers/Protocol+Buffers - cwiki.us 的 Protocol Buffer WIKI
 * http://docs.ossez.com/protocol-buffers-docs/index.html - Protocol Buffer 技术资料

== 数据序列化和反序列化
* 序列化： 将数据结构或对象转换成二进制串的过程。
* 反序列化：将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。

image::https://docs.ossez.com/protocol-buffers-docs/images/protocol-buffers-serialization.png[]
