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