浅拷贝和深拷贝的原理
浅拷贝和深拷贝都是复制一个对象,但是它们的实现方式不同,导致复制后的结果也不同。
浅拷贝是复制一个对象,但是只复制对象的基本数据类型的值或者引用,而不复制对象中的引用类型的数据。也就是说,浅拷贝只是复制了指向某个对象的指针,而没有复制对象本身。当原对象中存在引用类型的数据时,浅拷贝会将指向这些数据的引用也复制到新对象中,新对象中的引用指向的是原对象中的数据,这就导致了新对象和原对象共享同一个引用类型的数据。
深拷贝则是复制一个对象,包括对象中的所有引用类型的数据。在深拷贝中,会先创建一个新对象,然后递归复制原对象中的所有引用类型的数据,直到所有数据都被复制到新对象中。这样,新对象中的引用类型数据和原对象中的引用类型数据是完全独立的,新对象和原对象之间没有任何联系。
总结来说,浅拷贝只复制对象本身和基本类型数据,而深拷贝则复制了对象本身以及对象中的所有数据。
原文地址: https://www.cveoy.top/t/topic/ciB0 著作权归作者所有。请勿转载和采集!