结绳记事,记录、思考,方有成长~
什么是序列化,有何用
把对象
转为字节序列
的过程称为对象的序列化
,把字节序列
恢复为对象
的过程称为对象的反序列化。
这样讲可能会比较抽象,考虑我们的程序在实际运行中,各种对象在内存中进行“生老病死”这样的一个周期,但内存并不是它唯一的归宿,可能它需要跟其他服务进行交互,比如分布式服务Dubbo中的订单服务要跟商品服务进行数据交互,当两个进程进行远程通信时,彼此可以发送各种类型的数据,无论是何种类型的数据,都是通过字节序列在网络上传输,发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方需要把这个字节序列再恢复为对象。
序列化有两种主要用途:
- 把对象的字节永久的保存到磁盘上,比如放在一个文件中;
- 在网络上传输对象的字节序列。
序列化协议
我们知道了什么是序列化和反序列化,具体如何实现就是协议要做的事情了。比如Json序列化
,msgPack序列化
,Hessian序列化
,Protocol-Buffer协议
及java默认序列化协议Serializable
,此处留个待办,介绍下各协议的大体情况