序列化与压缩

#

数据压缩的原理

压缩:

  • 通过一些有别于原始编码的特殊编码方式来保存数据,使数据占用的存储空间比较小
  • 压缩可以减少网络传输时间,但是压缩和解压缩需要时间

解压缩:

  • 将被压缩的数据从特殊编码方式还原为原始数据的过程
  • 解压需要时间
  • 压缩算法的评价
    • 时间:压缩速度、解压速度
    • 空间: 压缩比 = 压缩后所占空间/压缩前所占空间
    • 故 压缩时间要短、空间占比要小

序列化与压缩

序列化的意义:

  • 编写程序写文件A,另一个程序读取文件A
  • 进程通信时传输的数据
    • 基本数据类型实例:int,long,double等数值
    • 用户自定义类的实例:对象
  • 如何完成进程间的对象传送?
    • C c = new C(x,x,x);是在另外一个进程,调用class c 吗
    • 然后class c是作为进程通信时传输的数据,进行序列化传到C c 所在的进程?

定义:

  • 序列化:把对象状态按照一定的格式转换成有序字节流,以便在网络上传输或者保存在本地文件中
  • 反序列化:从文件中或网络上获得序列化后的对象字节流后,根据字节流中所保存的对象状态及描述信息,重建对象

序列化:

  • 数据需要序列化以后才能在服务端和客户端之间传输。
  • 这个服务端和客户端的概念是广义的,可以在网络上,也可以在同一台机器的不同进程中,甚至在同一个进程中进行通信。
  • 序列化协议:JSON、XML、Thrift、Protobuf…
0%