Informationen zu primitiven Java-Typen und Referenztypen

Vorwort

Dies ist ein Artikel, den ich über Grundelemente und Wrapper-Klassen und deren Inhalt zusammengefasst habe. Ich lerne gerade, mich für Java Silver zu qualifizieren, und ich schreibe, dass ich es auf dieser Ebene verstehe, so dass es möglicherweise an Genauigkeit oder Genauigkeit mangelt. Bitte haben Sie Verständnis (wenn Sie einen Fehler machen, lassen Sie es mich bitte wissen).

Zielgruppe

・ Personen, die über eine Java-Qualifikation nachdenken ・ Leute, die nicht verstehen, was sie sagen, wie Primitive, Rapper-Klassen und Auto-Boxen.

Stichwort

Primitiver Typ, Referenztyp, Wrapper-Klasse, Auto-Boxing, Unboxing

Was ist ein Primitiv (Typ)?

** [Grobe Definition] ** ・ Einer der Java-Datentypen -Javas sogenannter Basistyp, auch Werttyp genannt -Es gibt einen Wert im Speicherstapelbereich

[Art] Insgesamt gibt es 8 Typen. Ich denke, Sie müssen sich nicht an den Wertebereich erinnern, der ausgedrückt werden kann (~~, also habe ich aufgehört, in der Mitte zu schreiben ~~). Ich denke, es ist in Ordnung, sich an die Anzahl der Bits zu erinnern. Je größer die Anzahl der Bits, desto breiter ist der Bereich, der ausgedrückt werden kann [^ 10].

Datentyp Werte und Bereiche, die ausgedrückt werden können bisschen(bit) Konkretes Beispiel
boolean true, false 1
byte -128 ~127 ganze Zahlen 8
char \u0000 ~ \uFFFF Unicode-Zeichenfolge 16
short -32768 ~32767 Ganzzahl 16
int ganze Zahl 32
float Reelle Zahl(Gleitkommazahl mit einfacher Genauigkeit) 32 2f, 100F
long ganze Zahl 64 10l, 5L
double Reelle Zahl(Gleitkommazahl mit doppelter Genauigkeit) 64

Was ist ein Referenztyp?

** [Grobe Definition] ** ・ Einer der Java-Datentypen ・ String, Array, Liste usw.

Um die letzte Definition genauer zu schreiben, wird das neu erstellte Objekt (≒ Instanz) dem Stapelbereich zugewiesen, und der Zeiger (Adresse im Speicher) auf dieses Objekt wird dem Peep-Bereich als Referenzwert zugewiesen ( Referenz 4> [Primitivtyp und Referenztyp](https://qiita.com/hysdsk/items/2e94c8722dc8f950e77c# Primitivtyp und Referenztyp).

[Referenz 2] und [Ref2] sind sehr detailliert über den Unterschied im Verhalten bei der Zuordnung zwischen primitivem Typ und Referenztyp. Bitte beziehen Sie sich darauf. (Dieses Mal ist das Hauptthema nicht da, also werde ich weitermachen)

Was ist eine Wrapper-Klasse?

** [Grobe Definition] ** ・ Evolutionäre Klasse primitiver Typen, die als Referenztyp klassifiziert sind ← Sieht stark aus -Jede Klasse hat eine bequeme Methode ・ Es verhält sich wie ein primitiver Typ, aber der Inhalt kann null sein (seien Sie also vorsichtig mit nullpo).

Es ist wahrscheinlich eine Wrapper-Klasse, weil sie den primitiven Typ umschließt (umschließt)! Die Inhalte sind primitive Typen. Lassen Sie uns eine Tabelle erstellen, die dem primitiven Typ entspricht (mit Ausnahme einiger hat sie dieselbe Form wie der primitive Typ!).

Primitiver Typ Wrapper-Klasse
boolean Boolean
byte Byte
char Character
short Short
int Integer
float Float
long Long
double Double

Ich habe es als bequeme Methode geschrieben, aber für "Integer" konvertiert beispielsweise "Integer.parseInt (String)" eine Zeichenfolge in einen int-Typ, "Integer.valueOf (int)" konvertiert einen int-Typ in eine Zeichenfolge usw. Es stehen verschiedene Optionen zur Verfügung (letzteres wird auch bei der expliziten Konvertierung in den Integer-Typ verwendet, Einzelheiten finden Sie im nächsten Kapitel).

Was ist Auto Boxing und Unboxing?

Basierend auf der bisherigen Erklärung, wenn Sie die Definition schreiben

Autoboxing: Automatische Konvertierung vom primitiven Typ in die Wrapper-Klasse Unboxing: Automatische Konvertierung von der Wrapper-Klasse in den primitiven Typ [^ 15]

ist! Ich glaube nicht, dass es etwas mit Sportboxen zu tun hat, ich weiß es nicht [^ 20]! Ich denke, es ist Autoboxing, weil es den primitiven Typ automatisch umschließt (= legt es in die Box), und umgekehrt ist es Unboxing, weil es aus der Box genommen wird.

Der eigentliche Code sieht folgendermaßen aus (zitiert aus Referenz 7).

//Auto-Boxen
int numInt = 10;
Integer numInteger = numInt;

//Unboxing
Integer numInteger = new Integer(10);
int numInt =  numInteger;

Die Abbildung von Auto Boxing und Unboxing sieht so aus.

Auto-Boxen
            ==>  
  [Primitiver Typ]        [Wrapper-Klasse]  
            <==
Unboxing

Übrigens bedeutet die Tatsache, dass ich oben "automatische Konvertierung" geschrieben habe, dass Sie auch explizit Autoboxing und Unboxing durchführen können (zitiert aus Referenz 7).

//Auto-Boxen
int numInt = 10;
Integer numInteger = new Integer(numInt);
//Oder darunter
Integer numInteger = Integer.valueOf(numInt);

//Unboxing
Integer numInteger = new Integer(10);
int numInt =  numInteger.intValue();

Schriftlich

Ich kann oder kann nicht etwas schreiben, es ist unentschlossen.

Am Ende

Vielen Dank für das Lesen bis zum Ende!

Bonus

** Testinformationen (aus Referenz 1) ** Betreff: Java SE 8 Programmer I. Testnummer: 1Z0-808 [^ 30] Testzeit: 150 Minuten Anzahl der Fragen: 77 Fragen Pass Line: 65%

Referenz

Beim Schreiben dieses Artikels habe ich auf die folgenden Bücher und Websites verwiesen. Ich möchte diese Gelegenheit nutzen, um Ihnen zu danken. Alle Referenzen sind viel einfacher zu verstehen als meine Erklärungen, daher empfehle ich, sie zu lesen!

  1. Sumito Shiga (2019) "Gründliche Erfassung der Korrespondenz mit Java SE 8 Silver Problem Collection [1Z0-808]", herausgegeben von Impress Co., Ltd.
  2. [[Java] Erklären Sie den Unterschied zwischen Werttyp (primitiv) und Referenztyp (Objekttyp) mit Code und Abbildung << Vortragstag 1 >>] [ref2]
  3. [Primitiver Typ [Variablentyp]] [Ref3](IT-Terminologie-Wörterbuch, in dem Sie sich wie "Ich verstehe" fühlen, auch wenn Sie "Ich verstehe nicht")
  4. [Java-Referenz in der Abbildung verstanden] [Ref4]
  5. [[Einführung in Java] Eine leicht verständliche Erklärung der Grundlagen von Integer- und Wrapper-Klassen! ] [ref5]
  6. [Wrapper-Klassentyp] [Ref6]
  7. [[Java] Auto Boxing, Unboxing] [ref7]

[]: URL-Liste [ref2]: https://freelance-jak.com/technology/java/1175/ [ref3]: https://wa3.i-3-i.info/word15876.html [ref4]: https://qiita.com/hysdsk/items/2e94c8722dc8f950e77c [ref5]: https://www.sejuku.net/blog/22828 [ref6]: https://www.javadrive.jp/start/wrapper_class/index1.html [ref7]: https://qiita.com/chihiro/items/870eca6e911fa5cd8e58

Recommended Posts

Informationen zu primitiven Java-Typen und Referenztypen
Informationen zu Java-Datentypen (insbesondere primitiven Typen) und Literalen
Grundlegende Datentypen und Referenztypen (Java)
Java primitive Typen, Referenztypen, unveränderlich, veränderlich
Informationen zum Java-Grunddatentyp- und Referenztypspeicher
Java-Basisdatentypen und Referenztypen
[Java] Variablen- und Typtypen
Informationen zu Java Class Loader-Typen
Ich habe Java-Primitivtypen untersucht
[Java] Über String und StringBuilder
Über Java-Paket und Import
Äquivalenter Vergleich von Java-Wrapper-Klasse und primitivem Typ
Informationen zu statischen und nicht statischen Java-Methoden
Deklaration, Initialisierung und Typen von Java-Variablen
[Java] Grundtypen und Anweisungshinweise
Java Primer Series (Variationen und Typen)
[Java-Anfänger] Über Abstraktion und Schnittstelle
Java-Referenzmechanismus (Stack und Heap)
Java-Array-Variablen sind Referenztypen
Java als Wert übergeben und als Referenz übergeben
Unterschied zwischen primitivem Typ und Referenztyp
Dies und das über Base64 (Java)
[Java] Ausnahmetypen und grundlegende Verarbeitung
[Über JDBC, das Java und SQL verbindet]
[Einführung in Java] Informationen zu Variablendeklarationen und -typen
Seitenzahllogik und Referenzcode (Java)
Über die Java-Schnittstelle
[Java] Informationen zu Java 12-Funktionen
[Java] Über Arrays
Java8-Methodenreferenz
Etwas über Java
Wo ist mit Java?
Informationen zu Java-Funktionen
Über Java-Threads
Java und JavaScript
Informationen zu Java-Arrays
XXE und Java
Über Schnittstelle, Java-Schnittstelle
Java8-Methodenreferenz
JAVA Referenzmaterialien
Meine Java-Referenz
Über Java Var
Über Java Literal
Informationen zu Java-Befehlen
Informationen zur Java-Protokollausgabe
Informationen zur Java-Funktionsschnittstelle
Java, über zweidimensionales Array
Über die Klassenteilung (Java)
Über [Java] [StreamAPI] allMatch ()
Getter und Setter (Java)
Informationen zur Java StringBuilder-Klasse
[Java] Arten von Kommentaren und wie man sie schreibt
[Java] Thread und ausführbar
Java wahr und falsch
[Java] Über Singleton Class
Über Bean und DI
Über Klassen und Instanzen
[Java] Vergleich von Zeichenketten und && und ||
Informationen zur Bindung von Java-Methoden