java中的深拷貝與淺拷貝

2021-06-29 16:52:01 字數 794 閱讀 7560

不說太多,直接上**

/**

* 淺拷貝:沒有複製類的引用,只是複製了當前類,m1和m2引用的people物件相同

* */

public

class

shallowcopy

}class

manimplements

cloneable

public object clone() catch (clonenotsupportedexception e)

return obj;

}}class

people

/**

* 深拷貝:複製了當前類和類的引用,m1和m2引用的people物件不同

* */

public

class

deepcopy

}class

manimplements

cloneable

public object clone() catch (clonenotsupportedexception e)

m.people = (people) people.clone();

return m;

}}class

people

implements

cloneable

public object clone() catch (clonenotsupportedexception e)

return p;

}}

java深拷貝與淺拷貝

淺拷貝與深拷貝 淺拷貝 被複製物件的所有變數都含有與原來的物件相同的值,而所有的對其他物件的引用仍然指向原來的物件。換言之,淺複製僅僅複製所考慮的物件,而不複製它所引用的物件。深拷貝 被複製物件的所有變數都含有與原來的物件相同的值,除去那些引用其他物件的變數。那些引用其他物件的變數將指向被複製過的新...

Java深拷貝與淺拷貝

深拷貝與淺拷貝主要的不同是對於引用變數的拷貝,淺拷貝的引用變數不僅僅是拷貝乙個引用 位址 引用變數的成員也一樣深拷貝。廢話少說下面是兩個拷貝的例子 1.淺拷貝 1 package com.lightcopy 23 public class professor implements cloneable...

java中深拷貝淺拷貝分析

淺拷貝是指拷貝物件時僅僅拷貝物件本身 包括物件中的基本變數 而不拷貝物件包含的引用指向的物件 這裡的不拷貝是指不會給生成不同的引用位址 深拷貝不僅拷貝物件本身,而且拷貝物件包含的引用指向的所有物件。舉例 物件a1中包含對b1的引用,b1中包含對c1的引用,淺拷貝a1得到a2,那麼a2中依然包含對b1...