深拷贝与浅拷贝 首先明确所谓的深拷贝浅拷贝都是针对存在堆中的数据,也就是引用数据类型而言。区分深拷贝与浅拷贝很简单,将A拷贝一份出来给B,然后修改A,看B是否会跟着变化,如果跟着变就是浅拷贝,A与B所指向的地址相同;若没有跟着变化,则是深拷贝,B的值是在堆中新开辟了一块空间存储,A和B所指向的地址不同。 声明一个数组A时: 将B浅拷贝一份出来时,直接将A的引用地址给B,此时修改A,B会跟着变: 将B深拷贝一份出来时,重新在堆中开辟一块空间存这个数据,B的地址指向新的值,此时更改A,B不受影响: