浅拷贝与深拷贝的区别
展开全部
一.深拷贝
源对象和副本对象是不一样的两个对象。
源对象引用计数不变,副本对象计数器为1(因为是新产生的)。
至少有一层是对象复制。
二.浅拷贝
源对象和副本对象是同样的对象。
源对象(副本对象)引入计数器+1,等同于做一次retain的操作。
本质:没有生产新的对象。
从整体上来讲,深拷贝和浅拷贝的不同地方主要还是在于指针(或与指针)方面,浅拷贝仅仅是简易的将源悉者对象(这里是指广义的对象,不只是单指类的实例)的指针赋值给目标对象,对目标指针的操作就是对源对象的操作,因此在大部分情况下握历,目标对象析构(或跳出段陆搜其可见域)之后,源对象相关部分也就一同析构了。而深拷贝,是为目标对象重新分配空间,这样就能够和源对象的操作区分。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询