Serializable 序列化

没有系统地学习过序列化这东西,了解一下。 Java基础学习总结——Java对象的序列化和反序列化

以及一些经历。

什么是序列化

对象转换为字节序列的过程称为对象的序列化。
字节序列恢复为对象的过程称为对象的反序列化。

也就是说,把内存里的 Object 写成硬盘上的文件进行持久化保存,要用的时候再取出来。
或者,将对象转换成字节序列(二进制)后在网络上进行传输。

什么东西需要序列化

如何序列化

提醒

由于序列化是根据 class 里面的 UID 来判断是否一致的,那么就存在以下两种情况:

  • 当希望 class 的版本向后兼容时,可以保持 UID 不变,那么老的(已经序列化的)文件依旧可以进行反序列化。
  • 当不希望兼容时,要更改/更新 class 中的 UID,那么进行反序列化时就会报错。

思考

有哪些常见类实现了序列化?为什么?

  • String

  • Session

更新 2020.12.30~31

序列化之后会发生什么?

今天碰到一个事,一个类的构造函数的一个入参是Map<String, String>,如果我传一个null进去的话,经过序列化+反序列化之后,他会变成一个空Map而不是原本的null

啊这?好好理解一下……

<To be continued … … >

深得我心!博主晚餐加鸡腿!