Java中對象賦值是將一個對象的引用賦值給另一個對象變量,從而使它們指向同一個對象。
對象賦值的基本操作
在Java中,對象的賦值有兩種基本方式:淺拷貝和深拷貝。淺拷貝是將對象的引用地址賦給另一個對象,而不是復(fù)制對象本身。深拷貝是創(chuàng)建一個新的對象,并將原對象的所有屬性值拷貝到新對象中,兩個對象沒有任何關(guān)聯(lián)。
賦值會覆蓋原對象
在Java中,如果將一個對象的引用賦值給另一個對象,它們將指向同一個對象。因此,在修改其中一個對象的屬性值時,另一個對象的屬性值也會隨之改變。例如:
// 定義一個Person類class Person { String name; int age;}// 創(chuàng)建一個Person對象Person person1 = new Person();person1.name = "Michael";person1.age = 18;// 將person1對象的引用賦值給person2對象Person person2 = person1;// 修改person2對象的屬性值person2.name = "Alex";// 輸出person1對象和person2對象的屬性值System.out.println(person1.name); // AlexSystem.out.println(person2.name); // Alex
在上述例子中,person2對象的屬性值被修改后,person1對象的同名屬性值也被修改了。這是因?yàn)镴ava中的對象引用本質(zhì)上是一個指向內(nèi)存地址的變量,當(dāng)一個引用被賦值給另一個變量時,它們將引用同一個內(nèi)存地址,從而使得對象的屬性值可以被共享。