面试官:详细说说你对序列化的理解
(1)为什么我们要序列化?
因为我们需要将内存中的对象存储到媒介中,或者我们需要将一个对象通过网络传输到另外一个系统中。
(2)什么是序列化?
序列化就是把对象转化为可传输的字节序列过程;反序列化就是把字节序列还原为对象的过程。
(3)序列化的机制
序列化最终的目的是为了对象可以跨平台存储和进行网络传输,而我们进行跨平台存储和网络传输的方式就是 IO,而 IO 支持的数据格式就是字节数组。
将对象转成字节数组的时候需要制定一种规则,这种规则就是序列化机制。
(4)常见序列化的方式
现在常见的序列化方式有:JDK 原生、JSON、ProtoBuf、Hessian、Kryo等。
(5)序列化技术的选型
选型最重要的就是要考虑这三个方面:协议是否支持跨平台、序列化的速度、序列化生成的体积。