总结了一些自己总是感觉记不太住,或者说感觉是重点的地方。方便自己查阅
1. 浅拷贝和深拷贝
如果拷贝的对象里面没有指向另外一个类的句柄(拷贝对象里面没有引用),那么浅拷贝和深拷贝是没有区别的。如果拷贝的类中包含指向另外一个类的句柄,那么浅拷贝只有句柄的值被new操作符复制,下层的对象不会被复制。
所以浅拷贝后,新对象的引用还是会指向原对象的引用,因此修改新对象会影响原对象。
而深拷贝需要自己写copy函数,不仅会复制现有对象中的变量和方法,还会把引用对象的值一并复制。相当于深拷贝后,两个对象完全独立。
浅拷贝:P2=new P1; 深拷贝: P2.copy(P1);