当前位置: 首页 > news >正文

深拷贝和浅拷贝的区别

本文内容

主要阐述下深拷贝和浅拷贝的区别

通俗理解

深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体,而不是引用。
假设B复制了A,修改A的时候,看B是否发生变化:

如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值)

如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值)

原理理解

浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,

深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,

使用深拷贝的情况下,释放内存的时候不会因为出现浅拷贝时释放同一个内存的错误。

浅复制:仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。

深复制:在计算机中开辟一块新的内存地址用于存放复制的对象。

参考:https://www.cnblogs.com/mikeCao/p/8710837.html

http://www.lryc.cn/news/172973.html

相关文章:

  • 利用优化算法提高爬虫任务调度效率
  • Swiper的使用流程
  • 如何快速实现一个可视化看板?
  • 基于PyTorch搭建FasterRCNN实现目标检测
  • 线性表应用(非递减合并、分解链表、删除线性表)
  • 【C++面向对象侯捷下】1.导读
  • Ubuntu22.04 vnc远程黑屏
  • 【1区TOP】Elsevier旗下CCF推荐,仅3个月左右录用!
  • CentOS下安装Python3
  • 微信小程序底部安全区域高度获取
  • 虚拟机部署linux网络连接配置
  • 2591. 将钱分给最多的儿童(Java)
  • c++23中的新功能之十五类tuple类型的完全支持
  • iPhone15线下购买,苹果零售店前门店排长队
  • Vue3如何优雅的加载大量图片?
  • Go语言开发环境搭建指南:快速上手构建高效的Go开发环境
  • flex布局与float布局
  • 【C语言】字符函数和字符串函数(含模拟)
  • 基于YOLOv8模型的条形码二维码检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 2023/09/22 制作demo期间心得
  • 高阶数据结构——图
  • 高性能AC算法多关键词匹配文本功能Java实现
  • 如何在没有第三方.NET库源码的情况,调试第三库代码?
  • 仿互站资源商城平台系统源码多款应用模版
  • 华为云云耀云服务器L实例评测 | L实例性能测试实践
  • VR赋能红色教育,让爱国主义精神永放光彩
  • 计算机视觉与深度学习-卷积神经网络-卷积图像去噪边缘提取-图像去噪 [北邮鲁鹏]
  • 三行代码实现图像画质修复,图片清晰度修复,清晰度提升python
  • 企业电子招投标采购系统源码之电子招投标的组成
  • 【MySQL】 MySQL的增删改查(进阶)--贰