Java-Array-Variablen sind Referenztypen

Java-Array-Variablen sind Referenztypen.

Ich denke, es ist eine natürliche Grundsache, aber da ich ursprünglich PHP gemacht habe, Für mein eigenes Memorandum habe ich es ein wenig zusammengefasst.

Im Fall des folgenden Codes wird beispielsweise 100 ausgegeben.

int[] a = { 1, 2, 3 };
int[] b = a;
b[0] = 100;
System.out.println(a[0]);
// a[0]Ausgänge 100.

Dies liegt daran, dass Java-Array-Variablen Referenztypen sind. Daher wurde ein Array für int [] a erstellt Weil die Speicheradresse gespeichert ist.

Wenn zum Beispiel die Speicheradresse des von int [] a erstellten Arrays ABC123 ist (ich glaube nicht, dass es tatsächlich eine solche Speicheradresse gibt), Das Array a wird an dieser Speicheradresse (Position) aufgezeichnet, die als ABC123 bezeichnet wird.

Und da ABC123, die die Speicheradresse der Arrayvariablen int [] a ist, in int [] b enthalten ist, ist der Punkt, dass es dasselbe Array ist. Daher ist b [0] = 100 dasselbe wie a [0] = 100.

Wenn Sie den gleichen Code unten in PHP schreiben, wird 1 anstelle von 100 ausgegeben.

$a = [1,2,3];
$b = $a;
$b[0] = 100;
echo $a[0];
//1 wird ausgegeben

Dies ist kein Referenztyp in PHP, sondern wird als Wert übergeben Dies liegt daran, dass das Array von \ $ a selbst kopiert und an \ $ b übergeben wird, nicht die Speicheradresse von \ $ a.

In PHP ist es erforderlich, \ & wie unten gezeigt hinzuzufügen, um es zu einem Referenztyp zu machen.

$a = [1,2,3];
$b = &$a;
// ↑$Vor einem&Anziehen
$b[0] = 100;
echo $a[0];
//100 wird ausgegeben

Auf diese Weise wird es zu einem Referenztyp, und \ $ b enthält die Speicheradresse des von \ $ a erstellten Arrays. Da es gespeichert ist, ist die Operation dieselbe wie im Fall von Java oben.

Recommended Posts

Java-Array-Variablen sind Referenztypen
[Java] Variablen- und Typtypen
[Java] -Array
Warum werden Klassenvariablen benötigt? [Java]
Java-Array
Java (Array)
Java Primer Series (Variationen und Typen)
Grundlegende Datentypen und Referenztypen (Java)
Java-Array
[Java] Array
Java primitive Typen, Referenztypen, unveränderlich, veränderlich
Java-Array
Informationen zu primitiven Java-Typen und Referenztypen
Java-Basisdatentypen und Referenztypen
Java-Array
[Java] Array
Lokale Java-Variablen sind threadsicher
Java für Anfänger, Variablen und Typen
[Java] Ausgabe, Variablen
Java-Array-Variable
[Java] Array-Hinweis
Java8-Methodenreferenz
[WIP] Java-Variablen
Java8-Methodenreferenz
JAVA Referenzmaterialien
Meine Java-Referenz
[Java] Variablen- und Typtypen
Java Primer Series (Variationen und Typen)
Java-Array-Variablen sind Referenztypen
Java für Anfänger, Variablen und Typen
Wenn Java-Tests Umgebungsvariablen enthalten
Was ich in Java gelernt habe (Teil 2) Was sind Variablen?
Java Review ① (Entwicklungsschritte, grundlegende Grammatik, Variablen, Datentypen)
Informationen zur Java-Array-Liste
Gibt an, ob Java-Argumente als Wert oder als Referenz übergeben werden
Informationen zum Java-Grunddatentyp- und Referenztypspeicher
[Java] Hauptdatentypen
[Java Silver] Was sind Klassenvariablen, Instanzvariablen und lokale Variablen?
Java-Grunddatentypen
Wenn Variablen im Java-Editor von Eclipse nicht mehr hervorgehoben sind
Generieren Sie Stream aus einem Array primitiver Typen in Java
[Java] Integer-Wrapper-Klassenreferenz
[Java] Konvertierung von Listentyp / Array-Typ
Java VB.net-Dienstreferenz auf halbem Weg
(Hinweis) Java-Klassen / Variablen / Methoden
Java-Gleichstellungen sind ziemlich unangenehm
Informationen zu Java Class Loader-Typen
Ich habe Java-Primitivtypen untersucht
[Umgebungsvariablen] Schienen Was sind Umgebungsvariablen?
Was sind praktisch endgültige Variablen?
Java-Klasse Variable Klassenmethode
Grundlagen der Java-Entwicklung ~ Übung (Array) ~
Verwendung von Java-Variablen
[Java] Konvertiert ArrayList in Array
[Java Silver] So generieren Sie ein Array
So initialisieren Sie ein Java-Array
[Anfänger] Java grundlegende "Array" Beschreibung
Java Learning 1 (Lernen Sie verschiedene Datentypen)
Was sind Java-Metriken? _Memo_20200818
[Einführung in Java] Informationen zu Variablen und Typen (Variablendeklaration, Initialisierung, Datentyp)
Grundlagen der Java-Entwicklung ~ Schreiben von Programmen (Variablen und Typen) ~