浅拷贝和深拷贝
浅度拷贝:复制一层对象的属性,并不包括对象里面的为引用类型的数据,当改变拷贝的对象里面的引用类型时,源对象也会改变。
结果输出:
当B复制了A,当B修改了是,A也会随之修改,原因如下:
深度拷贝:重新开辟一个内存空间,需要递归拷贝对象里的引用,直到子属性都为基本类型。两个对象对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性
输出结果:
此时,A不会随着B的修改而有所改变,原因如下:
浅度拷贝:复制一层对象的属性,并不包括对象里面的为引用类型的数据,当改变拷贝的对象里面的引用类型时,源对象也会改变。
结果输出:
当B复制了A,当B修改了是,A也会随之修改,原因如下:
深度拷贝:重新开辟一个内存空间,需要递归拷贝对象里的引用,直到子属性都为基本类型。两个对象对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性
输出结果:
此时,A不会随着B的修改而有所改变,原因如下:
相关推荐