淺複製與深複製
原來很多人不知道,
自己筆記一個比較好的說明。
一、淺複製
創建一個新的執行個體時,這個 "新的執行個體" 對 "目前執行個體" 中所有成員變數進行複製。
實質型別:建立新的記憶體並複製值給"新的執行個體",當 "新的執行個體" 的欄位狀態改變,不會影響 "目前執行個體" 的狀態
參考型別:建立新的記憶體並參考原有的記憶體位置給"新的執行個體",當 "新的執行個體" 的欄位狀態改變,會影響 "目前執行個體" 的狀態
二、深複製
是創建一個新的執行個體時,這個 "新的執行個體" 對 "目前執行個體" 中所有成員變數(包含參考型別)進行複製,不論甚麼型別當 "新的執行個體" 的欄位狀態改變,不會影響 "目前執行個體" 的狀態
.懶人包
-淺複製/Shallow copy:大多用來參考型別,對克隆體修改會影響原物件
-深複製/Deep copy:用來修改實際參數做執行,對克隆體修改不會影響原物件
自己筆記一個比較好的說明。
一、淺複製
創建一個新的執行個體時,這個 "新的執行個體" 對 "目前執行個體" 中所有成員變數進行複製。
實質型別:建立新的記憶體並複製值給"新的執行個體",當 "新的執行個體" 的欄位狀態改變,不會影響 "目前執行個體" 的狀態
參考型別:建立新的記憶體並參考原有的記憶體位置給"新的執行個體",當 "新的執行個體" 的欄位狀態改變,會影響 "目前執行個體" 的狀態
二、深複製
是創建一個新的執行個體時,這個 "新的執行個體" 對 "目前執行個體" 中所有成員變數(包含參考型別)進行複製,不論甚麼型別當 "新的執行個體" 的欄位狀態改變,不會影響 "目前執行個體" 的狀態
.懶人包
-淺複製/Shallow copy:大多用來參考型別,對克隆體修改會影響原物件
-深複製/Deep copy:用來修改實際參數做執行,對克隆體修改不會影響原物件
留言
張貼留言