首页 > 其他 > 详细

深浅拷贝的区别

时间:2020-03-22 21:16:19      阅读:57      评论:0      收藏:0      [点我收藏+]

深浅拷贝

如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。

1. 如果是基本数据类型,名字和值都会储存在栈内存中

 技术分享图片 

当然,这也算不上深拷贝,因为深拷贝本身只针对较为复杂的object类型数据。

2. 如果是引用数据类型,名字存在栈内存中,值存在堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值

 技术分享图片

 

不想两个变量操作数组,都会改变,想建立一个独立的变量,只是存储相同的数据

需要建立一个独立的变量,复制引用数据类型中的数据内容

只复制 引用数据类型中的 数值 而不是 复制地址

称为深拷贝

 技术分享图片
总结

 基本数据类型

 赋值的是 存储的数据

赋值之后 两个变量没有关系

 引用数据类型

  浅拷贝

  直接赋值 赋值的是 内存地址

  赋值之后 两个变量使用的相同内容,一个操作,另一个也会改变

  深拷贝

  循环遍历,获取引用数据类型中,存储的每一个数据信息

  赋值到新的变量中

  赋值之后 两个变量,没有任何关系

这个介绍的很简单,便于理解,逆战班教学真的不一样,大佬觉得怎么样?要不要点个关注,点个赞,照顾一下,谢谢各位支持!

 

深浅拷贝的区别

原文:https://www.cnblogs.com/zhlang/p/12548229.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!