一、浅复制
浅复制是复制引用,比如有一个对象a,a对象指向一块内存空间,b复制a后,两个对象指向同一空间,如果其中一个对象的值发生改变,另一个对象指向的值也会发生改变。
实例1
b对象复制a对象,如果此时改变b对象的data值,a对象的data值也会改变。
实例二
b数组复制数组a,b数组的值改变了,a数组的值也改变了。
二、深复制
深复制是复制实例,还是对象a和b,深复制是在计算机中重新开辟一块内存地址,让b指向这块新开辟的内存地址,同时复制a对象。
实例
这段代码简化一下其实是这样的:
意思就是重新开辟一块内存地址,让新对象去指向它,然后递归的去遍历原对象的属性,赋值给新对象。