为什么要序列化,其核心目的就是为了解决网络通信之间的对象传输问题,就是说,如何把当前JVM进程里面的一个对象,跨网络传输到另外一个JVM进程里面。
序列化就是把内存里的对象转化为字节流,以便用来实现存储或者传输。
反序列化就是根据从文件或者网络上获取到的对象的字节流,根据字节流里面保存的对象描述信息和状态,重新构建一个新的对象。
在我们进行序列化的前提是保证通信双方对于对象的可识别性,所以很多时候,我们会把对象先转化为通用的解析格式,比如json,xml等。然后再把他们转化为数据流进行网络传输,从而实现跨平台和跨语言的可识别性。