[JAVA] Unterschied zwischen primitivem Typ und Referenztyp

Memo

Primitiver Typ (Basisdatentyp) und Referenztyp

Es gibt zwei Haupttypen von Java. ** Primitiver Typ ** und ** Referenztyp **. Ich habe versucht, jedes zusammenzufassen.

Was ist ein primitiver Typ?

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;

Was ist ein Referenztyp?

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.

Unterschied zwischen Basistyp und Referenztyp bei Neuzuweisung

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

Unterschied zwischen primitivem Typ und Referenztyp
[Java] Unterschied zwischen der Zuweisung der Basistypvariablen und der Zuordnung der Referenztypvariablen
Unterschied zwischen vh und%
Unterschied zwischen i ++ und ++ i
Upcast, Dowcast und Konstruktor
Basisdatentyp und Referenztyp
Unterschied zwischen primitivem Typ und Referenztyp
Unterschied zwischen Produkt und Variante
Basisdatentyp und Referenztyp
Unterschied zwischen redirect_to und render
[Java] Unterschied zwischen == und gleich
Unterschied zwischen redirect_to und render
Unterschied zwischen CUI und GUI
Unterschied zwischen Variablen und Instanzvariablen
Unterschied zwischen Klasse und Instanz
Unterschied zwischen Bundle und Bundle-Installation
Unterschied zwischen ArrayList und LinkedList
Unterschied zwischen render und redirect_to
Unterschied zwischen List und ArrayList
Unterschied zwischen .bashrc und .bash_profile
Unterschied zwischen StringBuilder und StringBuffer
Unterschied zwischen render und redirect_to
[Java] Unterschied zwischen gleich und == in einer Zeichenfolge, die ein Referenztyp ist
[Ruby] Unterschied zwischen get und post
Unterschied zwischen Schnittstelle und abstrakter Klasse
Unterschied zwischen == Operator und Methode gleich
[Java] Unterschied zwischen Hashmap und HashTable
[Terminal] Unterschied zwischen irb und pry
JavaServlet: Unterschied zwischen executeQuery und executeUpdate
[Ruby] Unterschied zwischen is_a? Und instance_of?
[Rails] Unterschied zwischen find und find_by
[JAVA] Unterschied zwischen Abstract und Interface
Unterschied zwischen Thymeleaf @RestController und @Controller
Unterschied zwischen Stream Map und FlatMap
[Java] Unterschied zwischen Array und ArrayList
Informationen zu primitiven Java-Typen und Referenztypen
Unterschied zwischen string.getByte () und Hex.decodeHex (string.toCharaArray ())
[Java] Unterschied zwischen Closeable und AutoCloseable
[Java] Unterschied zwischen StringBuffer und StringBuilder
[Java] Unterschied zwischen Länge, Länge () und Größe ()
[Rails] Unterschied zwischen redirect_to und Rendern
[Android] Unterschied zwischen finish () und return;
Hinweis: Unterschied zwischen Ruby "p" und "Puts"
Unterschied zwischen final und Immutable in Java
[Hinweis] Unterschied zwischen Bundle-Installation und -Update
Unterschied zwischen Ruby-Instanzvariable und lokaler Variable
Unterschied zwischen pop () und peek () im Stapel
[Für Anfänger] Unterschied zwischen Java und Kotlin
Unterschied zwischen isEmpty und isBlank von StringUtils
Unterschied zwischen getText () und getAttribute () von Selen
Über den Unterschied zwischen irb und pry
Unterschied zwischen "|| =" und "instance_variable_defined?" Im Ruby-Memo
Unterschied zwischen EMPTY_ELEMENTDATA und DEFAULTCAPACITY_EMPTY_ELEMENTDATA in ArrayList
[Ruby] Unterschied zwischen print, put und p
[Java] Unterschied zwischen Intstream-Bereich und rangeClosed
Unterschied zwischen int und Integer in Java
[Rails] Unterschied zwischen redirect_to und render [Anfänger]
[iOS] Verstehe den Unterschied zwischen Frame und Grenzen