理解深拷贝和浅拷贝:
浅拷贝:就是一个数字孪生人。Person p2从Person p1里克隆出来,除了p1和p2对象本身的地址不一样,属性的地址都是指向同一地址,p1的属性如何变化,p2就跟着如何变化。所以“创造一个跟着变化的数字孪生人”是浅拷贝的目的。
深拷贝呢?Person p2从Person p1里克隆出来以后,与p1再无关系,深拷贝的目的只是拷贝过来p1的值而已,仅仅是拷贝,没有其他的目的了。我们第一天学编程就在用的int a=b其实就是深拷贝:
int a = 1;
int b=a; //b的变化不影响a的值,a的变化也不影响b的值。
一开始我以为只有C++里有浅拷贝和深拷贝的概念,后来发现无论是Java,Python还是其他语言都有这个概念。