首先为什么我们需要序列化,在网络上进行不同应用间的数据传输的时候,我们需要把本地jvm里面的数据转化为数据流,以便于实现存储和传输。
而反序列化则是从文件或者网络上获取到的对象的字节流,根据这个数据重新构建一个新的对象。
为了方便于通讯双方识别,所以我们会把数据流变成一个通用的信息格式,比如json,xml或者其他格式,然后转化成数据流传输。(可实现跨平台跨语言)。
选择这种信息格式需要考虑四个因素,第一是序列化以后数据的大小(影响传输性能),第二是序列化的性能(影响业务的性能),第三个是这种方式是否支持跨平台跨语言,第四个是技术的成熟度(通过调研现如今大部分公司的使用频率)。