深拷貝和淺拷貝有什麼區別?

2021-09-24 04:47:30 字數 366 閱讀 4537

深拷貝和淺拷貝有什麼區別?

淺拷貝在建立新例項型別時會用到,並保留在新例項中複製的值。淺拷貝用於複製引用指標,就像複製值一樣。這些引用指向原始物件,並且在類的任何成員中所做的更改也將影響它的原始副本。淺拷貝允許更快地執行程式,它取決於所使用的資料的大小。

深拷貝用於儲存已複製的值。深層複製不會將引用指標複製到物件。**它引用乙個物件,**並儲存一些其他物件指向的新物件。原始副本中所做的更改不會影響使用該物件的任何其他副本。由於為每個被呼叫的物件建立了某些副本,因此深層複製會使程式的執行速度變慢。

簡單說說物件淺拷貝和深拷貝有什麼區別

基本資料型別,拷貝是直接拷貝變數的值,而引用型別拷貝的其實是變數的位址 而淺拷貝和深拷貝就是在這個基礎之上做的區分,如果在拷貝這個物件的時候,只對基本資料型別進行了拷貝,而對引用資料型別只是進行了引用的傳遞,而沒有重新建立乙個新的物件,則認為是淺拷貝。反之,在對引用資料型別進行拷貝的時候,建立了乙個...

深拷貝和淺拷貝區別是什麼?

這個其實是需要我們知道計算機中,資訊的記憶體位址與空間的關係,多的不說,上圖,一看就懂。clas test首先我們需要知道1個記憶體位址 1個位元組 byte 8位 bit 從上面例子來看,int型佔據4個記憶體位址,我們 中建立變數後,計算機會為a和b分配了4個記憶體位址,這一以來,我們只需要知道...

深拷貝和淺拷貝的區別

retain屬性表示兩個物件位址相同 建立乙個指標,指標拷貝 內容當然相同,這個物件的retain值 1也就是說,retain 是指標拷貝 淺拷貝 copy 是內容拷貝 深拷貝 ios中並不是所有的物件都支援copy,mutablecopy,遵守nscopying 協議的類可以傳送copy訊息,遵守...