4 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
淺拷貝盡可能少?gòu)?fù)制。集合的淺表副本是集合結(jié)構(gòu)的副本,而不是元素。使用淺拷貝,兩個(gè)集合現(xiàn)在共享各個(gè)元素。
深拷貝復(fù)制一切。集合的深層副本是兩個(gè)集合,原始集合中的所有元素都是重復(fù)的。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
廣度與深度; 根據(jù)您的對(duì)象作為根節(jié)點(diǎn)的引用樹(shù)來(lái)思考。
淺:
變量A和B指的是不同的存儲(chǔ)區(qū)域,當(dāng)B被分配給A時(shí),兩個(gè)變量指的是相同的存儲(chǔ)區(qū)域。以后對(duì)其中一個(gè)內(nèi)容的修改會(huì)立即反映在其他內(nèi)容中,因?yàn)樗鼈児蚕韮?nèi)容。
深:
變量A和B指的是不同的存儲(chǔ)區(qū),當(dāng)B被分配給存儲(chǔ)區(qū)中的值時(shí),A指向的值被復(fù)制到B指向的存儲(chǔ)區(qū)中。后來(lái)對(duì)其中任何內(nèi)容的修改仍然是A或B的唯一內(nèi)容; 內(nèi)容不共享。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
特別是對(duì)于iOS開(kāi)發(fā)人員:
如果B
是淺拷貝的A
,那么它就像原始數(shù)據(jù)B = [A assign];
和對(duì)象它像B = [A retain]
;
B和A指向相同的內(nèi)存位置
如果B
是深拷貝的A
,那么它像B = [A copy];
B和A指向不同的存儲(chǔ)位置
B存儲(chǔ)器地址與A相同
B與A的內(nèi)容相同
添加回答
舉報(bào)