Memo
Es gibt zwei Haupttypen von Java. ** Primitiver Typ ** und ** Referenztyp **. Ich habe versucht, jedes zusammenzufassen.
Die folgenden acht sind primitive Typen.
Schimmel | Einstufung | Anzahl der Bits |
---|---|---|
boolean | Boolescher Wert | 1 |
byte | ganze Zahl | 8 |
short | ganze Zahl | 16 |
char | Brief | 16 |
int | ganze Zahl | 32 |
float | Fraktion | 32 |
long | ganze Zahl | 64 |
double | Fraktion | 64 |
Beim Deklarieren einer primitiven Typvariablen kann der Wert gleichzeitig mit der Deklaration in der Variablen gespeichert werden. Der Wert 1 wird wie in der folgenden Variablen a gespeichert.
int a = 1;
Referenztypen sind andere als die oben genannten acht Typen. Beispielsweise sind Strings und Arrays Referenztypen.
Hoge hoge = new Hoge();
String str = "fuga";
Im Referenztyp wird der Wert nicht so wie er ist in der Variablen gespeichert, sondern der Speicherort des Speichers, in dem der Wert gespeichert ist.
Es gibt einen Unterschied im Verhalten der Neuzuweisung zwischen dem Basistyp und dem Referenztyp.
Der folgende Beispielcode ist der Code, der den Basistyp neu zuweist. Sie können dies intuitiv sehen.
kihon.java
int a = 1;
int b = a; //Der Wert von a: 1 wird in b gespeichert
a = 2;
Systemout.println(a); //2 wird ausgegeben
Systemout.println(b); //1 wird ausgegeben
Andererseits ist es im Referenztyp wie folgt. In der gleichen Denkweise wie der Grundtyp scheint b [0] 1 auszugeben. Bei Referenztypen speichern Variablen jedoch nur den Speicherort des Speichers, in dem die Daten gespeichert sind.
Wenn das Array a deklariert wird, werden die Ortsinformationen des Speichers, in dem die Informationen des Arrays "{1, 2, 3}" gespeichert sind, in a gespeichert. Wenn das Array b deklariert ist, speichert b auch den Speicherort des Arrays "{1, 2, 3}" von a.
Zu diesem Zeitpunkt sind sowohl a als auch b Variablen, die dieselben Speicherortinformationen enthalten.
a [0] = 0;
ersetzt den 0. Wert des Arrays {1, 2, 3}
an dem in a gespeicherten Speicherort durch 0. Das im Speicher gespeicherte Array ist jetzt "{0, 2, 3}".
Selbst wenn Sie die 0te des Arrays von der in b gespeicherten Position im Speicher aus betrachten, ist der Ausgabewert daher 0.
sansyo.java
int[] a = {1, 2, 3};
int[] b = a;
a[0] = 0;
Systemout.println(a[0]); //0 wird ausgegeben
Systemout.println(b[0]); //0 wird ausgegeben
Recommended Posts