深度拷貝與淺度拷貝

深度拷貝與淺度拷貝的區別主要在於有沒有爲拷貝出的新對象在堆中重新分配一塊內存區域。淺度拷貝即直接賦值,拷貝的只是原始對象的引用地址,在堆中仍然共用一塊內存。而深度拷貝爲新對象在堆中重新分配一塊內存,所以對新對象的操作不會影響原始對象。 關於爲什麼要用深度拷貝,如果要將可變對象和不可變對象相互轉換,或者需要操作新對象的時候不影響原始對象,則用深度拷貝。copy-on-write原則就是利用深度拷貝來
相關文章
相關標籤/搜索