概述

Serializable是Java所提供的一个序列化接口,它是一个空接口,为对象提供标准的序列化和反序列化操作。使用Serializable来实现序列化相当简单,只需要在类的声明中指定一个类似下面的标识即可自动实现默认的序列化过程。

通常我们使用Java的序列化与反序列化时,只需要将类实现Serializable接口即可,剩下的事情就交给了jdk。今天我们就来探究一下,Java序列化是怎么实现的,然后探讨一下几个常见的集合类,他们是如何处理序列化带来的问题的。

问题思考

  • 为什么序列化一个对象时,仅需要实现Serializable接口就可以了。
  • 通常我们序列化一个类时,为什么推荐的做法是要实现一个静态final成员变量serialVersionUID。
  • 序列化机制是怎么忽略transient关键字的, static变量也不会被序列化。

接下来我们就带着问题,在源码中找寻答案吧。