美文网首页
浅拷贝与深拷贝的区别是什么?

浅拷贝与深拷贝的区别是什么?

作者: 西门丨不吹雪 | 来源:发表于2016-07-23 14:56 被阅读130次

1.浅拷贝是指针拷贝(指向原有的内存空间),没有产生新对象。源对象和副本对象是同一对象,相当于做一次retain操作
2.深拷贝是内容拷贝(指向新的内存空间),产生新对象,源对象引用计数不变,副本对象引用计数为1(因为是新产生的)。

copy: 创建一个新的对象,新的对象引用计数加1,被copy对象的引用计数不变,改变新拷贝的对象时,被拷贝的对象不会发生改变,两者无直接联系
retain:创建一个指针,对象的引用计数加1,两个指针同时指向同一对象,新旧指针都可以改变对象的值
retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1。也就是说,retain 是指针拷贝,copy 是内容拷贝。

Paste_Image.png

相关文章

  • 深拷贝和浅拷贝

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

  • js浅拷贝、深拷贝

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

  • iOS 深浅拷贝

    iOS深拷贝与浅拷贝的区别 深拷贝与浅拷贝的概念:(我的理解,望不吝赐教) 浅拷贝:只copy一份对象的指针,指向...

  • 2020前端高频面试题总结(附答案)

    [ js基础题 ] 1. new的实现原理是什么? 2. 深拷贝和浅拷贝的区别是什么 深拷贝 浅拷贝 3. bin...

  • copy和mutableCopy的区别

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

  • 深拷贝与浅拷贝

    本文将讲述一下几点 深拷贝与浅拷贝的区别。 深拷贝的常用方法 切记。只有引用类型才存在深拷贝与浅拷贝的问题哦~,基...

  • iOS--拷贝相关题

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

  • js深拷贝浅拷贝

    目录 一.数据类型 二.浅拷贝与深拷贝 三.赋值和浅拷贝的区别 四.浅拷贝的实现方式 五.深拷贝的实现方式 一.数...

  • python(进阶一)

    三范式 GIL 深拷贝与浅拷贝 深拷贝 浅拷贝 跟引用的区别 python基本上如果提供了copy方法都是浅cop...

  • 简述三范式,GIL,浅拷贝与深拷贝

    三范式 GIL 深拷贝与浅拷贝 深拷贝 浅拷贝 跟引用的区别 python基本上如果提供了copy方法都是浅cop...

网友评论

      本文标题:浅拷贝与深拷贝的区别是什么?

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