035、利用对象流实现深度复制

Par @Martin dans le
Tags :

    利用对象流来做深复制 (主要是为了避免重写比较复杂对象的深复制的 clone()方法)

    把对象写到流里的过程是串行化 (Serilization) 过程, 但是在 Java 程序师圈子里又非常形象地称为 “冷冻” 或者 “腌咸菜 (picking)” 过程;
    而把对象从流中读出来的并行化 (Deserialization) 过程则叫做 “解冻” 或者 “回鲜 (depicking)” 过程.

    应当指出的是, 写在流里的是对象的一个拷贝, 而原对象仍然存在于 JVM 里面, 因此 “腌成咸菜” 的只是对象的一个拷贝, Java咸菜还可以回鲜.

    在 Java 语言里深复制一个对象, 常常可以先使对象实现 Serializable 接口, 然后把对象 (实际上只是对象的一个拷贝) 写到一个字节数组流里 (腌成咸菜) , 再从流里读出来 (把咸菜回鲜) , 便可以重建对象.