Bootstrap

序列化与反序列化

结绳记事,记录、思考,方有成长~

什么是序列化,有何用

对象转为字节序列的过程称为对象的序列化,把字节序列恢复为对象的过程称为对象的反序列化。

这样讲可能会比较抽象,考虑我们的程序在实际运行中,各种对象在内存中进行“生老病死”这样的一个周期,但内存并不是它唯一的归宿,可能它需要跟其他服务进行交互,比如分布式服务Dubbo中的订单服务要跟商品服务进行数据交互,当两个进程进行远程通信时,彼此可以发送各种类型的数据,无论是何种类型的数据,都是通过字节序列在网络上传输,发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方需要把这个字节序列再恢复为对象。
序列化有两种主要用途:

  • 把对象的字节永久的保存到磁盘上,比如放在一个文件中;
  • 在网络上传输对象的字节序列。

序列化协议

我们知道了什么是序列化和反序列化,具体如何实现就是协议要做的事情了。比如Json序列化msgPack序列化Hessian序列化Protocol-Buffer协议及java默认序列化协议Serializable此处留个待办,介绍下各协议的大体情况

java默认序列化类se

;