美文网首页
浅拷贝和深拷贝区别

浅拷贝和深拷贝区别

作者: 胖虎很可爱 | 来源:发表于2018-04-20 16:19 被阅读0次

浅拷贝:

a = [1,'changhao',[]]
b = a[:]
切片操作就是浅拷贝
b 的所有地址引用原来a中的地址,当然a与b的地址是不相同的
字符串和数字类型都是不可变的,一旦发生改变就会产生新的地址,刷新引用
例如:
b[0] = 100
此时id(b[0])和id(a[0])的地址就会不同

产生浅拷贝的方法:
切片操作,使用list()工厂函数创建对象

深拷贝:

深拷贝就是把所有的地址创建新的出来,可是这样做的话太浪费空间,
并且对于字符串数字这类不可变类型如果重新赋值的话就会创建新的地址,然后刷新引用,
所以对于数字字符串一开始不必创建新的地址. 对于列表等可变类型是一开始就创建新的地址.

深拷贝的创建方式:
只能通过copy中的deepcopy创建.

相关文章

  • copy和mutableCopy的区别

    copy和mutableCopy的区别 深拷贝和浅拷贝的区别 在OC中对象的拷贝方式有两种:深拷贝和浅拷贝.浅拷贝...

  • 深拷贝和浅拷贝

    干货!深拷贝和浅拷贝的区别 深拷贝才是拷贝,浅拷贝就是Retain Copy与Retain的区别 Copy: 根据...

  • iOS--拷贝相关题

    1、什么是深拷贝什么是浅拷贝?浅拷贝和深拷贝的区别 * 浅拷贝(shallow copy):指针拷贝,对于被拷贝对...

  • python的浅拷贝和深拷贝

    对于不可变类型,浅拷贝和深拷贝没有区别 对于不可变类型 赋值 浅拷贝 深拷贝

  • 五、面试总结(五)

    对象 拷贝(clone) 如何实现对象克隆 深拷贝和浅拷贝区别 深拷贝和浅拷贝如何实现激活机制 写clone()方...

  • JavaScript的深拷贝和浅拷贝

    原文 博客原文 大纲 前言1、对深拷贝和浅拷贝的初步认识2、深拷贝和浅拷贝的区别3、浅拷贝存在的缺陷4、深拷贝的实...

  • 深拷贝和浅拷贝

    1.深拷贝:地址的拷贝 2.浅拷贝:是值得拷贝 深拷贝和浅拷贝的区别 A拷贝B B变A变是浅拷贝 A拷贝B B变A...

  • js浅拷贝、深拷贝

    前言 本文主要简单讲一下什么是浅拷贝、什么是深拷贝、深拷贝与浅拷贝的区别,以及怎么进行深拷贝和怎么进行浅拷贝。 一...

  • iOS 中 load 和 initialize 方法调用机制

    深拷贝和浅拷贝 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生...

  • JS中对象的复制

    JS中的对象复制分为两种情况:深拷贝和浅拷贝。深拷贝和浅拷贝的区别在于对数组和对象的拷贝,对它们拷贝时浅拷贝只是拷...

网友评论

      本文标题:浅拷贝和深拷贝区别

      本文链接:https://www.haomeiwen.com/subject/buhzkftx.html