网站建设积分,工作室建设基础,小型教育网站的开发与建设系统,营销型网站建设实战》本文内容
主要阐述下深拷贝和浅拷贝的区别
通俗理解
深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体#xff0c;而不是引用。 假设B复制了A#xff0c;修改A的时候#xff0c;看B是否发生变化#xff1a;
如果B跟着也变了#xff0c;说明是浅拷贝而不是引用。 假设B复制了A修改A的时候看B是否发生变化
如果B跟着也变了说明是浅拷贝拿人手短修改堆内存中的同一个值
如果B没有改变说明是深拷贝自食其力修改堆内存中的不同的值
原理理解
浅拷贝shallowCopy只是增加了一个指针指向已存在的内存地址
深拷贝deepCopy是增加了一个指针并且申请了一个新的内存使这个增加的指针指向这个新的内存
使用深拷贝的情况下释放内存的时候不会因为出现浅拷贝时释放同一个内存的错误。
浅复制仅仅是指向被复制的内存地址如果原地址发生改变那么浅复制出来的对象也会相应的改变。
深复制在计算机中开辟一块新的内存地址用于存放复制的对象。
参考https://www.cnblogs.com/mikeCao/p/8710837.html