基础
序列化:将数据结构或对象转换成二进制串的过程。
反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。
调用writeObject()
序列化一个对象,是将其写入磁盘,以后在程序再次调用readObject()
时,根据wirteObject()
磁盘的文件重新恢复那个对象。Externalizable
接口扩展Serializable
,并增添两个方法:writeExternal()
和readExternal()
。在序列化和重新装配的过程中,会自动调用这两个方法。Externalizable
是Serializable
接口的子类,有时不希望序列化那么多,可以使用这个接口,这个接口的writeExternal()
和readExternal()
可以指定序列化哪些属性。
算法
算法一般会按步骤做如下事情:
- 将对象实例相关的类元数据输出。
- 递归地输出类的超类描述直到不再有超类。
- 类元数据完以后,开始从最顶层的超类开始输出对象实例的实际数据值。
- 从上至下递归输出实例的数据。