很早就听说过序列化(序列化的原本意图是希望对一个Java对象作一下“变换”,变成字节序列)了,也知道要实现序列化必须要实现的接口:
Serializable
Externalizable
上面两个接口只实现一个就够了。
但,为什么要序列化呢?这个问题困扰我很久,当初也搜了很多,但都没有解释清楚的,今天知乎给我推了一篇文章,看完觉的豁然开朗。
我用我的语言总结归纳一下
用来做对象的持久化,序列化后对象的文件可以长久保存在磁盘上
用来跨平台通信,发送方序列化后,接收方可以用任何其支持的平台反序列化成相应的版本,比如 Java序列化后, 用.net、phython等反序列化
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.
服务端把数据序列化,发送到客户端,客户端把接收到的数据反序列化后对数据进行操作,完成后再序列化发送到服务端,服务端再反序列化数据后对数据进行操作。
如果在进程内通信,也可以做到更高的安全性,对象不再通过调用栈交互,而是通过代理或通道。
为什么需要序列化阿肯那顿的博客-CSDN博客为什么要序列化
Java序列化有什么作用?序列化与不序列化有什么区别? - 知乎 (zhihu.com)