#
数据压缩的原理
压缩:
- 通过一些有别于原始编码的特殊编码方式来保存数据,使数据占用的存储空间比较小
- 压缩可以减少网络传输时间,但是压缩和解压缩需要时间
解压缩:
- 将被压缩的数据从特殊编码方式还原为原始数据的过程
- 解压需要时间
- 压缩算法的评价
- 时间:压缩速度、解压速度
- 空间: 压缩比 = 压缩后所占空间/压缩前所占空间
- 故 压缩时间要短、空间占比要小
序列化与压缩
序列化的意义:
- 编写程序写文件A,另一个程序读取文件A
- 进程通信时传输的数据
- 基本数据类型实例:int,long,double等数值
- 用户自定义类的实例:对象
- 如何完成进程间的对象传送?
- C c = new C(x,x,x);是在另外一个进程,调用class c 吗
- 然后class c是作为进程通信时传输的数据,进行序列化传到C c 所在的进程?
定义:
- 序列化:把对象状态按照一定的格式转换成有序字节流,以便在网络上传输或者保存在本地文件中
- 反序列化:从文件中或网络上获得序列化后的对象字节流后,根据字节流中所保存的对象状态及描述信息,重建对象
序列化:
- 数据需要序列化以后才能在服务端和客户端之间传输。
- 这个服务端和客户端的概念是广义的,可以在网络上,也可以在同一台机器的不同进程中,甚至在同一个进程中进行通信。
- 序列化协议:JSON、XML、Thrift、Protobuf…