为什么要克隆
首先思考一个问题, 为什么需要克隆对象? 直接new一个对象不行吗?...我们常见的 Object a = new Object(); Object b; b = a; 这种形式的代码复制的是引用, 即对象在内存中的地址, a和b指向了同一个对象....简单说, 浅克隆仅克隆当前对象, 而不克隆当前对象所引用的对象.
深克隆:
被克隆的对象里的所有变量值都与原来的对象相同, 那些引用其他对象的变量将指向被复制过的新对象, 而不再是原来被引用的对象....它的工作原理如下: 在内存中先开辟一块和原始对象相同的空间, 然后复制原始对象的内容....Java序列化克隆
如果引用类型中海包括引用类型, 要实现多层克隆会很麻烦, 这使用可以使用序列化和反序列化的方式实现对象的深克隆.