这两个操作的初衷是无论存储还是网络传输,内容都是二进制的字节序列,而真实的应用场景中,我们还多时候得到的是一个对象,于是都放置在内存中进行操作,但内存始终是有限的,当内存的容量不足以放置这么多数据时,就需要将一部分暂时用不到的数据存储到硬盘中,于是乎就出现了对象序列化的操作。
同时,如果需要进行远端通信数据传输,也面临着对象序列化的问题,接收方会进行逆向操作,也就是对象反序列化。
只有实现了Serializable和Externalizable接口的类才可以序列化,同时提到其中一个比较重要的变量serialVersionUID,它的设置保证了当进行类的更改时版本的一致性。