Heim  >  Artikel  >  Java  >  Was ist der Unterschied zwischen Objektreferenz und Wertübergabe in Java?

Was ist der Unterschied zwischen Objektreferenz und Wertübergabe in Java?

WBOY
WBOYOriginal
2024-04-11 18:48:01497Durchsuche

Der Unterschied zwischen der Übergabe von Objektreferenzen und der Übergabe von Werten in Java: Wertübergabe: Beim Übergeben einer Kopie des Basisdatentyps hat das Ändern der Kopie keine Auswirkungen auf die Originalvariable. Übergabe per Referenz: Die Übergabe einer Referenz an eine Variable vom Referenztyp. Das Ändern des Objekts, auf das die Referenz zeigt, wirkt sich auf alle Variablen aus, die die Referenz enthalten.

Was ist der Unterschied zwischen Objektreferenz und Wertübergabe in Java?

Der Unterschied zwischen Objektreferenz und Wertübergabe in Java

Vorwort
Die Programmiersprache Java unterstützt zwei Methoden: Wertübergabe und Referenzübergabe. Das Verständnis der Unterschiede zwischen diesen beiden Arten der Übergabe ist entscheidend für das Schreiben effizienter und korrekter Java-Programme.

Wertübergabe
Wertübergabe übergibt eine Kopie einer Variablen an eine Methode oder einen anderen Thread. Die Originalvariable und die Kopie sind unabhängig und eine Änderung der Kopie hat keine Auswirkungen auf die Originalvariable. Grundlegende Datentypen (wie int, double, boolean usw.) werden immer als Wert übergeben.

Beispiel:

int a = 10;
int b = a; // 值传递,创建 a 的副本
b++;  // 修改副本
System.out.println(a); // 输出 10

Pass by reference
Pass by reference übergibt einen Verweis auf eine Variable an eine Methode oder einen anderen Thread. Die ursprüngliche Variable und der Verweis verweisen auf dasselbe Objekt, was bedeutet, dass alle Änderungen am Objekt in allen Variablen widergespiegelt werden, die diesen Verweis enthalten. Die Referenzübergabe wird verwendet, um auf Objekttypen (z. B. Klassen, Schnittstellen usw.) zu verweisen.

Beispiel:

Person person1 = new Person("John", 25);
Person person2 = person1; // 引用传递,person2 指向与 person1 相同的对象
person2.setName("Jane"); // 修改对象
System.out.println(person1.getName()); // 输出 "Jane"

Praktischer Fall

Wertübergabe: Übergabe grundlegender Datentypen

public void increment(int value) {
    value++;  // 仅修改局部副本
}

Referenzübergabe: Übergabe von Objekt. Referenz

public void changeName(Person person) {
    person.setName("New Name");  // 修改实际对象
}

Fazit Verstehen Sie die Beziehung zwischen Objektreferenz und Wert Passing Der Unterschied ist entscheidend für das Schreiben von robustem und wartbarem Java-Code. Primitive Datentypen werden als Wert übergeben, während Objekte als Referenz übergeben werden. Durch sorgfältiges Überlegen der von Ihnen übergebenen Variablentypen können Sie unerwartetes Verhalten vermeiden und korrekten Code schreiben.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Objektreferenz und Wertübergabe in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn