zoukankan      html  css  js  c++  java
  • 浅拷贝、深拷贝

    在项目中我们经常要处理数据,概括就四个字:增删改查,
    我们“增删改查”操作数据其实也就操作内存数据,经常会各种变量互相赋值
    那么问题来了,如果是普通的赋值其实也就是简单的浅拷贝数据,
    浅拷贝容易被影响数据,深拷贝则不一样。
     
    以下一个小例子:
     
    为什么b数组删除一个下标,a数组也会被影响呢?

     

    这里就涉及到浅拷贝、深拷贝

    b数组的内容来自于a数组

    如果a直接赋值b那么属于浅拷贝,

    虽然它们变量名不一样但内存地址是一样的,

    如果某一个变量改变了该内存值,那么其他变量也会受影响

    解决方法是用深拷贝,深拷贝直接在内存新建值不受其他变量影响

     这里要说说浅拷贝、深拷贝的区别,

     浅拷贝:虽然变量名不一样,但实际指向内存地址是一样的

    深拷贝:直接在内存新建一份值内存地址也就不一样了

     另外JQ的$.extend()方法,等有空也说说自己看法。

    其实网上很多技术文章,大神们写得比我好多,但为什么我还是要自己写文章呢?

    其实是想从自己角度表达技术的看法。

    文笔有限,写这文章目的主要是随笔给自己一个笔记。

  • 相关阅读:
    STM32 端口复用配置
    stm32 新建文件记得添加到工程
    keil解决SYSTEMsysstm32f10x.h(298): error: #67: expected a "}"
    解决Keil复制中文乱码
    STM32 MPU6050 源码
    STM32 PWM输出
    STM32定时器
    STM32 看门狗操作姿势
    开课博客
    第二周学习进度
  • 原文地址:https://www.cnblogs.com/konghaowei/p/8573729.html
Copyright © 2011-2022 走看看