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

Java深拷貝和淺拷貝應用

榮姿康1年前8瀏覽0評論

Java中的拷貝分為深拷貝和淺拷貝兩種類型,深拷貝是將被拷貝的對象重構(gòu),并將其所有內(nèi)容一起復制到新的對象中,新的對象與被拷貝對象不共享任何東西;而淺拷貝只是進行了一份新的引用,兩個對象共享同一個引用,所以如果其中一個對象修改了值,另一個對象也會受到影響。

深拷貝通常在以下場景中使用:

// Java中的深拷貝實現(xiàn)方法
public class DeepCopy {
String name;
int age;
// 拷貝構(gòu)造函數(shù)
public DeepCopy(DeepCopy dc){
this.name = dc.name;
this.age = dc.age;
}
// 普通構(gòu)造函數(shù)
public DeepCopy(String n, int a){
this.name = n;
this.age = a;
}
public static void main(String[] args) {
DeepCopy dc = new DeepCopy("Tom", 20);
DeepCopy dc1 = new DeepCopy(dc);
System.out.println(dc1.name); // Tom
System.out.println(dc1.age); // 20
dc1.name = "Jerry";
dc1.age = 25;
System.out.println(dc1.name); // Jerry
System.out.println(dc1.age); // 25
System.out.println(dc.name); // Tom
System.out.println(dc.age); // 20
}
}

淺拷貝通常在以下場景中使用:

// Java中的淺拷貝實現(xiàn)方法
public class ShallowCopy {   
String name;
int age;
public static void main(String[] args) {
ShallowCopy sc = new ShallowCopy();
sc.name = "Tom";
sc.age = 20;
ShallowCopy sc1 = sc;
System.out.println(sc1.name); // Tom
System.out.println(sc1.age); // 20
sc1.name = "Jerry";
sc1.age = 25;
System.out.println(sc1.name); // Jerry
System.out.println(sc1.age); // 25 
System.out.println(sc.name); // Jerry
System.out.println(sc.age); // 25
}
}

在Java中,拷貝是常見的編程技巧之一,它通常用于在修改對象之前,先對其進行拷貝,以保留原始對象的副本,同時可以減少修復變更引起的錯誤。