欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Java深拷貝和淺拷貝應(yīng)用

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

深拷貝通常在以下場(chǎng)景中使用:

// Java中的深拷貝實(shí)現(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
}
}

淺拷貝通常在以下場(chǎng)景中使用:

// Java中的淺拷貝實(shí)現(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中,拷貝是常見(jiàn)的編程技巧之一,它通常用于在修改對(duì)象之前,先對(duì)其進(jìn)行拷貝,以保留原始對(duì)象的副本,同時(shí)可以減少修復(fù)變更引起的錯(cuò)誤。