Heim  >  Artikel  >  Java  >  Analyse des Unterschieds zwischen Wertübergabe und Referenzübergabe in Java (mit Code)

Analyse des Unterschieds zwischen Wertübergabe und Referenzübergabe in Java (mit Code)

不言
不言Original
2018-08-21 14:15:061925Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Analyse des Unterschieds zwischen Wertübergabe und Referenzübergabe (mit Code). Ich hoffe, dass dies der Fall ist Dir helfen.

Wert übergeben (Wert übergeben) bezieht sich auf die Übergabe der tatsächlichen Parameter Kopieren und übergeben Sie es an die Funktion, sodass die tatsächlichen Parameter nicht beeinträchtigt werden, wenn die Parameter in der Funktion geändert werden. Das übertragene Objekt ist häufig eine grundlegende Datenstruktur, beispielsweise ein Ganzzahl-Gleitkomma-Zeichentyp.

public class PassByValueReference {
	//值传递
	public static void main(String[] args) {
		int x = 9;
		pass(x);
		System.out.println(x);
	}
	
	private static void pass(int y) {
		System.out.println(y);
		y=0;
	}
}

Das Folgende ist das laufende Ergebnis: (Die Änderung des Werts der Ganzzahl y hat keinen Einfluss auf den Wert der Ganzzahl x)

Referenz übergeben (Referenz übergeben ) bezieht sich auf die Übergabe der Adresse der tatsächlichen Parameter Wenn Sie die Funktion direkt aufrufen, wirken sich die an den Parametern in der Funktion vorgenommenen Änderungen auf die tatsächlichen Parameter aus. (Ähnlich einer Community) Das übertragene Objekt ist häufig eine Adressdatenstruktur wie beispielsweise ein Array.

public class PassByValueReference {
        //引用传递
	public static void main(String[] args) {
		int [] x = {9};
                System.out.println(x[0]);
		pass(x);
		System.out.println(x[0]);
	}
	
	public static void pass(int [] y) {
		y[0] = 0;
	}
}

Das Folgende ist das laufende Ergebnis: (Änderungen im Wert von Array y wirken sich auch auf den Wert von Array x aus)

(Wert Übertragung und Referenzübertragung werden in Computerdatenstrukturen verwendet.

Wenn Sie noch nicht mit den Kenntnissen über Funktionen und Methoden in Java in Berührung gekommen sind, können Sie diese einfach verwenden Zuweisung zum Verständnis: (Die laufenden Ergebnisse ähneln den oben genannten)

public class PassByValueReference {
	//值传递(赋值非函方式)
	public static void main(String[] args) {
	    int x = 9;
            System.out.println(x);
	    y = x;
            y = 10;
	    System.out.println(x);
	}
}

Hier sind x und y grundlegende Datentypen. Nach der Zuweisung wird der Wert von x an y übergeben, was dem Erstellen einer Kopie entspricht. anstatt das gesamte x (d. h. die x-Adresse) an y zu übergeben.

public class PassByValueReference {
        //引用传递(赋值非函方式)
        public static void main(String[] args) {
		int [] x = {1};
		System.out.println(x[0]);
		int [] y = x;
		y[0] = 0;
		System.out.println(x[0]);
	}
}

Hier sind x und y Arrays, die nicht einfach x[0]=y[0] setzen, sondern direkt x=y y, das ist gleichbedeutend damit, dass man im „selben Boot“ sitzt und sich gemeinsam verändert. Wenn sich y[0] ändert, ändert sich auch x[0].

Verwandte Empfehlungen:

Detaillierte Erklärung der Java-Wertübergabe und Referenzübergabe

Java-Softwareentwickler lernt PHP -13. Wertübergabe Referenzübergabe

Das obige ist der detaillierte Inhalt vonAnalyse des Unterschieds zwischen Wertübergabe und Referenzübergabe in Java (mit Code). 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