色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java淺拷貝和

洪振霞1年前7瀏覽0評論

Java中的淺拷貝和深拷貝是非常重要的概念。淺拷貝是指創建一個新的對象,但是這個新對象只是復制了原對象的值類型域, 而引用類型域的值仍然是原對象中該引用指向的對象的地址。也就是說,淺拷貝僅僅復制了對象的引用,并沒有復制對象本身。

//淺拷貝示例代碼
class Person implements Cloneable{
private String name;
private int age;
private ArrayListhobbies;
public Person(String name,int age,ArrayListhobbies){
this.name = name;
this.age = age;
this.hobbies = hobbies;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public ArrayListgetHobbies(){
return hobbies;
}
@Override
public Object clone() throws CloneNotSupportedException {
//調用父類的clone方法
Person person = (Person) super.clone();
return person;
}
}
public class ShallowCopy{
public static void main(String[] args) throws CloneNotSupportedException {
ArrayListhobbies = new ArrayList();
hobbies.add("shopping");
hobbies.add("reading");
Person person1 = new Person("lily", 20, hobbies);
Person person2 = (Person) person1.clone();//調用clone方法進行淺拷貝
System.out.println(person1.getName());
System.out.println(person2.getName());
//輸出:lily, lily
System.out.println(person1.getHobbies());
System.out.println(person2.getHobbies());
//輸出同一個地址 [shopping, reading]
}
}

可以看到,通過淺拷貝得到的新對象person2和原對象person1共用了一個ArrayList類型的hobbies屬性,也就是說它們指向同一個對象,如果我們修改person2中的hobbies屬性,原對象person1中也會跟著改變。