永发信息网

copy 是深拷贝还是浅拷贝

答案:2  悬赏:50  手机版
解决时间 2021-04-01 16:49
copy 是深拷贝还是浅拷贝
最佳答案
copy是深拷贝还是浅拷贝要看是可变与不可变。不可变是深拷贝,可变是浅拷贝。

非容器类:
因为是不可变的对象,所以当copy的时候,只是指针的复制,而内容未复制,所以在原来的不可变的对象的引用计数+1,如果先release,然后改变不可变对象的值,从而改变了它的指针地址,而对于拷贝的对象并未发生改变;
如果先改变不可变对象的值,结果同上。对于mutableCopy,此重新创建了一个内存地址,所以不改变,为深拷贝。

对于可变的对象,当copy的时候,至少指针复制,而复制给的对象应该在内存中创建一个空间。所以,指针地址改变了,所以是浅拷贝,即使使用的时可变的拷贝也是浅拷贝。

如果在原来的可变的对象中再次加入内容,那么还是其余的copy和mutableCopy还是不会变,因为他们已经是不同的内存地址了。

容器类:

1.
对于不可变对象,在copy中,此时的和非容器类的不可变对象相同,同样是浅拷贝,但是因为此时的指针都是指向容器,所以当容器里边的值
发生改变的时候,copy的对象也会发生改变,即使对于Copy的对象的容器内容发生重新定义也不会改变,只会根据原来不可变对象的内容改变而改变,而对
于mutableCopy,因为是深拷贝,所以也会改变但是其内存地址在Copy中重新创建了一个空间。所以对于Copy和mutableCopy,他们
容器内的值地址并非发生改变;而对于容器发生改变的时候将和非容器不可变对象的结果一模一样,mutableCopy还是深拷贝,不会发生改变。
全部回答
copy 缺省是浅拷贝.但是 copy 也可以做成深拷贝
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
abcd乘4等于dcba求abcd
话说犬夜叉和桔梗不止接过一次吻啊,有次是桔
重庆涪陵属于重庆哪个县?
灵契漫画txt
如何理解95后聊天内容无节操的心理
中级财务会计1. M公司有关债券投资业务如下:
大家觉得西北农林科技大学怎么样
LG双开门冰箱存不存在漏液问题?我给售后打电
学校给人断电一周合不合法?
我该拿娘家的亲戚们怎么办
急需热仿真软件,哪个软件简单易用,且应用广泛
五月,洋槐开花了,槐乡的小姑娘( )槐花, 小
利斧巨人电影里那个女演员的图片
今年6月,南宁市举行了第五届泛珠三角区域经
什么是订婚,订婚之后就算是生米煮成熟饭了吗
推荐资讯
基督教的女教徒叫什么啊
小学藏文大纲要求解读教案
广州市的经纬度
一般来说是鳕鱼贵还是鳗鱼贵?
我宁愿和你共度凡人短暂的一生,也不愿一个人
求らぶフェチシリーズ Vol.4 脚フェチ99足コ
OPPO R9tm是什么意思?
萌新想要问一下在苍之纪元里面开局是要怎么玩
为何联通号手机进入云南无4G信息
宜宾市县府街邮政代办所在什么地方啊,我要过
办离职证明上有个需要填的派驻是怎么填
2345浏览器打不开,无论怎样一点反应都没有,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?