深拷贝和浅拷贝解析

注:今天随笔学习其他大佬博客,觉得很好没必要自己重新写,纯属搬运工。

什么叫做拷贝?

在操作中就是复制,复制A-->B

A和B的地址和数据区别区分是深拷贝还是浅拷贝

根本区别:

深拷贝和浅拷贝需要注意的地方就是:可变元素的拷贝

在浅拷贝时,拷贝出来的新对象的地址和原对象是不一样的,但是新对象里面的可变元素(如列表)的地址和原对象里的可变元素的地址是相同的。也就是说浅拷贝它拷贝的是浅层次的数据结构(不可变元素),对象里的可变元素作为深层次的数据结构并没有被拷贝到新地址里面去,而是和原对象里的可变元素指向同一个地址,所以在新对象或原对象里对这个可变元素做修改时,两个对象是同时改变的。但是深拷贝不会这样,这个是浅拷贝相对于深拷贝最根本的区别 。

 

参考:1.https://blog.csdn.net/mall_lucy/article/details/104531218/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.pc_relevant_paycolumn_v2&spm=1001.2101.3001.4242.1&utm_relevant_index=3

     2.https://www.cnblogs.com/james5d/p/14289837.html

posted on 2022-01-12 15:08  Titen  阅读(30)  评论(0编辑  收藏  举报

导航