1: Was ist der Wert durch den Wert
Dies bedeutet, dass die übergebenen Parameter, wenn eine Methode aufgerufen wird, mit der Kopie des Wertes übergeben werden. Beispiele sind wie folgt:
public class merptest {private void test1 (int a) {// etwas tun} public static void main (String [] args) {merptest t = new theptest (); int a = 3; T.Test1 (a); // Der hier übergebene Parameter A soll nach Wert übergeben}}Wichtige Merkmale des Wertes durch den Wert: Was übergeben wird, ist eine Kopie des Wertes, was bedeutet, dass er nach dem Bestehen nicht miteinander verbunden ist.
Beispiele sind wie folgt:
public class merptest {private void test1 (int a) {a = 5; System.out.println ("test1 -Methode a ="+a); } public static void main (string [] args) {merptest t = new theptest (); int a = 3; T.Test1 (a); // Nach dem Bestehen wirkt sich die Änderung des Variablenwerts der Test1 -Methode nicht auf das A -System aus. }}Das Ergebnis der Operation ist:
A = 5 in der Test1 -Methode a = 3 in der Hauptmethode
2: Was wird von Referenz geleitet
Es bezieht sich auf die übergebenen Parameter, wenn die Methode aufgerufen wird, und die übergebenen Parameter werden mit Referenz übergeben. Tatsächlich ist die bestandene Referenzadresse die Adresse des Speicherraums, der der Variablen entspricht.
Beispiele sind wie folgt:
public class merptest {private void test1 (a a) {} public static void main (String [] args) {merptest t = new memptest (); A a = neu a (); t.test1 (a); // Der hier übergebene Parameter A soll nach Referenz übergeben}} Klasse A {public int age = 0; }3: Wichtige Merkmale des Übergangs durch Referenz
Was übergeben wird, ist ein Hinweis auf den Wert, was bedeutet, dass sowohl vor als auch nach dem Übergeben auf dieselbe Referenz (dh denselben Speicherplatz).
Beispiele sind wie folgt:
public class merptest {private void test1 (a a) {A.age = 20; Age = "+A.age in System.out.println (" test1 method = "+a.age);} öffentliche statische void main (String [] args) {temporest t = new theptest (); a a = new a (); }} Klasse A {public int age = 0; }Die Betriebsergebnisse sind wie folgt:
Alter = 20 in der Test1 -Methode, Alter = 20 in der Hauptmethode
4: Verstehen Sie den Prozess der Übergabe von Referenz - Speicherzuweisungsdiagramm
Um den Prozess der Übergabe von Referenz korrekt zu verstehen, müssen Sie lernen, den Prozess der Speicherzuweisung zu verstehen, und das Speicherzuweisungsdiagramm kann uns helfen, diesen Prozess zu verstehen.
Verwenden Sie das obige Beispiel, um zu analysieren:
(1): Laufen, leiten Sie Zeile 8 aus, erstellen Sie eine Instanz von A, und das Speicherzuweisungsdiagramm lautet wie folgt:
(2): Ausführen von Zeile 9, ändern Sie den Wert des Alters in Instanz A. Das Speicherzuweisungsdiagramm nach dem Laufen lautet wie folgt:
(3): Ausführen von Zeile 10, die die von der Variablen A in der Hauptmethode verwiesene Speicherplatzadresse an die Variable A in der Test1 -Methode gemäß der Referenz übergeben soll. Bitte beachten Sie: Diese beiden A -Variablen sind völlig anders, lassen Sie sich nicht mit demselben Namen täuschen.
Die Speicherallokation ist wie folgt:
Da es durch Bezugnahme, dh die Adresse des Speicherplatzes übergeben wird, ist das neue Speicherdiagramm nach Abschluss der Übertragung wie folgt:
Mit anderen Worten: Beide Variablen verweisen auf denselben Raum.
(4): Laufen Sie Zeile 3 aus und weisen Sie dem Alter der Instanz A den Wert zu, auf die durch Variable A in der Test1 -Methode hingewiesen wird. Das neue Speicherdiagramm, das nach Fertigstellung gebildet wird, lautet wie folgt:
Zu diesem Zeitpunkt wird die Änderung des Alterswerts von Instanz A durch die Test1 -Methode verursacht
(5): Ausführen von Zeile 4 und gemäß dem Speicherdiagramm zu diesem Zeitpunkt Ausgangsalter = 20 in der Test1 -Methode
(6): Ausführen von Zeile 11 und gemäß dem Speicherdiagramm zu diesem Zeitpunkt Ausgangsalter = 20 in der Hauptmethode
5: Änderungen an den obigen Beispielen
Nach dem Verständnis des obigen Beispiels können sich einige Personen fragen, können sich die von Referenzen übergebenen Werte nicht gegenseitig beeinflussen? Was ist die Modifikation in der Test1 -Methode, die sich nicht auf die Hauptmethode auswirkt?
Die Methode besteht darin, nur eine neue Instanz in der Test1 -Methode zu verwenden. Wechseln Sie zum folgenden Beispiel, wobei das dritte Verhalten neu hinzugefügt wird:
Public Class Scheppelste {private void test1 (a) {a = new a (); // Eine neue Zeile A.age = 20; System.out.println ("test1 method ay"+A.age); } public static void main (string [] args) {merptest t = new theptest (); A a = neu a (); A.age = 10; t.test1 (a); System.out.println ("Hauptmethode ay"+A.age); }} Klasse A {public int age = 0; }Das laufende Ergebnis ist:
Alter = 20 im Test1 -Methode Alter = 10 in der Hauptmethode
Warum unterscheidet sich das Ergebnis dieses Laufs vom vorherigen Beispiel? Es ist besser, das Speicherdiagramm zu verwenden, um es zu verstehen.
6: Nochmals durch Referenz verstehen
(1): Laufen, leiten Sie Zeile 9 aus, erstellen Sie eine Instanz von A, und das Speicherzuweisungsdiagramm lautet wie folgt:
(2): Die Laufzeile 10 beträgt den Wert des Alters in Instanz A. Das Speicherzuweisungsdiagramm nach dem Laufen lautet wie folgt:
(3): Ausführender Zeile 11 besteht darin, die von der Variablen A in der Hauptmethode verwiesene Speicherplatzadresse an die Variable A in der Test1 -Methode gemäß der Referenz zu übergeben. Bitte beachten Sie: Diese beiden A -Variablen sind völlig anders, lassen Sie sich nicht mit demselben Namen täuschen.
Die Speicherallokation ist wie folgt:
Da es durch Bezugnahme, dh die Adresse des Speicherplatzes übergeben wird, ist das neue Speicherdiagramm nach Abschluss der Übertragung wie folgt:
Mit anderen Worten: Beide Variablen verweisen auf denselben Raum.
(4): Führen Sie Zeile 3 aus und regenerieren Sie eine neue Instanz von A für Variable A in der Test1 -Methode. Das neue Speicherdiagramm, das nach Fertigstellung gebildet wird, lautet wie folgt:
(5): Laufen Sie Zeile 4 aus, um dem Alter der neuen Instanz A den Wert zuzuweisen, auf das in der Test1 -Methode eine Variable A zeigt. Das neue Speicherdiagramm, das nach Fertigstellung gebildet wird, lautet wie folgt:
Hinweis: Zu diesem Zeitpunkt wird das Alter der Variablen A in der Test1 -Methode geändert, während sich die Hauptmethode nicht ändert.
(6): Ausführen von Zeile 5 und gemäß dem Speicherdiagramm zu diesem Zeitpunkt Ausgangsalter = 20 in der Test1 -Methode
(7): Ausführen von Zeile 12 und gemäß dem Speicherdiagramm zu diesem Zeitpunkt Ausgabealter = 10 in der Hauptmethode gemäß dem Ausgangsspeicherdiagramm = 10
7: Erklärung
(1): "In Java wird der Parameterübergang mit Wert übergeben" bedeutet: Das Bestehen ist eine Kopie des übergebenen Werts. Durch die Übergabe von Referenz wird der Referenzadressenwert tatsächlich übergeben, so dass er gemeinsam als Wert übergeben wird.
(2): In Java werden nur die Grundtypen und Zeichenfolgen gemäß der folgenden Definitionsmethode nach Wert übergeben, und die anderen werden mit Referenz übergeben. Es soll Strings mit doppelten Zitaten direkt definieren: String str = "Java Private School";
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.