深拷貝 淺拷貝

2022-09-21 21:42:18 字數 446 閱讀 3135

資料分為基本資料型別(string, number, boolean, null, undefined,symbol)和物件資料型別。

1、基本資料型別的特點:直接儲存在棧(stack)中的資料

2、引用資料型別的特點:儲存的是該物件在棧中引用,真實的資料存放在堆記憶體裡

引用資料型別在棧

中儲存了指標,該指標指向堆中該實體的起始位址。當直譯器尋找引用值時,會首先檢索其在棧中的位址,取得位址後從堆中獲得實體。

深拷貝和淺拷貝是只針對object和array這樣的引用資料型別的。

淺拷貝只複製指向某個物件的指標,而不複製物件本身,新舊物件還是共享同一塊記憶體。但深拷貝會另外創造乙個一模一樣的物件,新物件跟原物件不共享記憶體,修改新物件不會改到原物件。

淺拷貝 深拷貝

copy mutablecopy copy 不管是可變的,還是不可變的,結果都是不可變的 mutablecopy 不管是不可變的,還是可變的,結果都是可變的 nsmutablestring str nsmutablestring stringwithformat a nsarray arr1 str...

深拷貝 淺拷貝

c 中物件的複製就如同 轉殖 用乙個已有的物件快速地複製出多個完全相同的物件。一般而言,以下三種情況都會使用到物件的複製 1 建立乙個新物件,並用另乙個同類的已有物件對新物件進行初始化,例如 cpp view plain copy class rect rect rect1 rect rect2 r...

淺拷貝 深拷貝

retain是建立乙個指標,引用物件計數加1。copy屬性表示兩個物件內容相同,新的物件retain為1 與舊有物件的引用計數無關,舊有物件沒有變化。copy減少物件對上下文的依賴。retain屬性表示兩個物件位址相同 建立乙個指標,指標拷貝 內容當然相同,這個物件的retain值 1也就是說,re...