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

Java的淺引用和深引用

張越彬1年前6瀏覽0評論

在Java中,引用是對象的一個別名。在進行編程時,有時需要創建一個新對象,并將其作為另一個對象的副本或修改副本的副本。這就涉及到了淺引用和深引用。

淺引用是指引用的對象將指向原來對象相同的地址,即指向同一個對象的指針。這意味著如果原始對象改變了,那么引用對象也會改變。在Java中,當使用等號創建一個新的對象引用時,就會發生淺拷貝。

//淺引用示例
public class Person{
int age;
String name;
public Person(int age, String name){
this.age = age;
this.name = name;
}
}
Person p1 = new Person(20, "John");
Person p2 = p1;
p1.age = 25;
System.out.println(p2.age); // 輸出25

而深引用則是指引用的對象指向一個新的對象地址,即引用對象和原始對象是兩個獨立的對象。這意味著當原始對象改變時,引用對象不會改變。在Java中,深拷貝需要使用clone()方法。

//深引用示例
public class Person implements Cloneable{
int age;
String name;
public Person(int age, String name){
this.age = age;
this.name = name;
}
public Object clone(){
try{
return super.clone();
}catch(Exception e){
return null;
}
}
}
Person p1 = new Person(20, "John");
Person p2 = (Person) p1.clone();
p1.age = 25;
System.out.println(p2.age); // 輸出20

在實際編程中,需要視情況選擇使用淺引用還是深引用。如果操作的是不可變對象,則可以使用淺引用,而如果要操作可變對象,則需要使用深引用,否則可能會出現意想不到的結果。