Deklaration, Initialisierung und Typen von Java-Variablen

Einführung

Dieser Artikel ist eine Aufzeichnung dessen, was ich für diejenigen verstehe, die Java studieren.

In meinem Artikel sind die wichtigsten Java-Funktionen in der folgenden Liste zusammengefasst.

・ Variablen, Typen und Typkonvertierung Aktuelle Seite ・ Umfang der Variablen ・ Zeichenkettenoperation (in Vorbereitung) ・ Arrangement-Operation (in Vorbereitung) ・ Bediener (in Vorbereitung) ・ Bedingte Verzweigung (in Vorbereitung) ・ Verarbeitung wiederholen (in Vorbereitung)

Darüber hinaus wird bei der Beschreibung dieses Artikels auf die folgenden Artikel verwiesen. https://www.sejuku.net/blog/22805

Deklarieren Sie eine Variable

Wenn Sie eine Variable in Java deklarieren, müssen Sie beschreiben, um welchen Datentyp es sich bei der Variablen handelt.

Einstiegsbeispiel

int suuzi; //Numerischer Typ
boolean dotti; //Boolescher Typ wahr oder falsch
String mozi; //Zeichentyp

System.out.println(mozi); //Ich versuche in Mozi zu schauen

Diese Beschreibung ist jedoch eine Deklaration und wurde nicht initialisiert. Ein Fehler tritt auf, wenn Variablen vorhanden sind, die in Java nicht initialisiert werden können.

Fehleranweisung

Error:Die Variable mozi wurde möglicherweise nicht initialisiert

Initialisieren

int suuzi; //Numerischer Typ
boolean dotti; //Boolescher Typ wahr oder falsch
String mozi; //Zeichentyp

suuzi = 10;
dotti = true;
mozi = "Brief";

System.out.println(suuzi); //Versuchen Sie, in die Zahlen zu schauen
System.out.println(dotti); //Ich versuche in Dotti zu schauen
System.out.println(mozi); //Ich versuche in Mozi zu schauen

Wenn Sie den Inhalt für das oben Gesagte festlegen, wird er initialisiert und Sie erhalten keine Fehlermeldung, selbst wenn Sie versuchen, darauf zu verweisen.

Lauf

10
true
Brief

Deklaration + Initialisierung

Es ist auch möglich, die obigen zwei Schritte zusammen zu schreiben.

int suuzi = 10; //Numerischer Typ
boolean dotti = true; //Boolescher Typ wahr oder falsch
String mozi = "Brief"; // Brief型

System.out.println(suuzi); //Versuchen Sie, in die Zahlen zu schauen
System.out.println(dotti); //Ich versuche in Dotti zu schauen
System.out.println(mozi); //Ich versuche in Mozi zu schauen

Wenn Sie wie oben Typ Variablenname = Inhalt schreiben, können Sie gleichzeitig deklarieren und initialisieren.

Lauf

10
true
Brief

Über den Typ

Bis zu diesem Punkt haben wir über Deklarationen und Initialisierung gesprochen, aber von nun an werden wir Typen beschreiben. Es gibt zwei Haupttypen, den Basistyp und den Referenztyp. Schauen wir uns jeden an.

Grundtyp

Ganzzahliger Typ Wir haben es mit ganzzahligen Daten zu tun. Es ist leicht zu verstehen, wenn Sie der Meinung sind, dass je größer die Größe, desto mehr numerische Werte verarbeitet werden können.

Datentyp Größe Wertebereich
byte 1byte -128~127
short 2byte -32768~32767
int 4byte -2147483648~2147483647
long 8byte -9223372036854775808~9223372036854775807

Wenn ich mir diese Tabelle anschaue, denke ich, dass es eine Meinung gibt, dass nur Longs mit einer großen Größe verwendet werden sollten, aber da die in der Tabelle aufgelistete Anzahl von Bytes unabhängig von der Größe des Werts verwendet wird, kann man sehen, dass ein kleiner Wert eingegeben werden kann. Ich möchte die Anzahl der Bytes so klein wie möglich halten. Wenn ich es schreibe, gibt es viele Ints. Wenn Sie feststellen, dass es nicht genug ist, wird es lange dauern. Wenn es sich um ein Byte oder einen Kurzschluss handelt, gibt es nur wenige, und ich denke, dass ein Fehler wie die Nichteingabe eines Werts auftreten kann.

Gleitkomma-Typ Eine Zahl, die einen Dezimalpunkt enthält.

Datentyp Größe Wertebereich
float 4byte ±3.40E38~±1.40E45
double 8byte ±4.94E-324~±1.79E+308

Zeichentyp Ich habe es mit Briefen zu tun. Der Basistyp char wird verwendet, um ein Zeichen zu behandeln.

Datentyp Größe Wertebereich
char 2byte 2-Byte-Zeichencode

Boule-Typ (Boolescher Typ) Wir haben es mit logischen Authentizitätsinformationen zu tun. Enthält entweder wahr oder falsch.

Datentyp Größe Wertebereich
boolean 1bit richtig oder falsch

Es ist in diese vier klassifiziert. Ein weiteres Merkmal des Basistyps ist, dass die Variable selbst einen Wert enthält.

Referenztyp

Grundsätzlich andere Typen als die oben genannten String Array Klasse Ist gezielt. Im Gegensatz zum Basistyp enthält dieser nicht den Wert in der Variablen selbst, sondern den Ort, an dem er gespeichert ist. Ich denke, es ist einfach, sich die Referenztyp-Analogie als Array vorzustellen https://www.javadrive.jp/start/array/index3.html Folgen wir dem Code im obigen Link.

class Main{
    public static void main(String args[]){
        int n[];
        int m[];

        n = new int[2];
        System.out.println(n);

        n[0] = 10;

        m = n;
        System.out.println(m);
        System.out.println("n[0] = " + n[0]);
        System.out.println("m[0] = " + m[0]);
    }
}

Wenn du rennst

[I@69379752
[I@69379752
n[0] = 10
m[0] = 10

Es wird angezeigt. Die Stelle, an der der Referenztyp angezeigt wird, wird in den beiden oberen Bereichen angezeigt. Die Tatsache, dass sie gleich sind, bedeutet, dass sie dasselbe betrachten, also betrachten n und m dasselbe Array.

Das ist alles für den Basistyp und den Referenztyp. Als nächstes werde ich die Besetzung beschreiben.

Typ gegossen (Typkonvertierung)

Diese Datentypen können auch konvertiert und übergeben werden. Ich habe es tatsächlich beschrieben und gesehen.

int i = 30;

System.out.println(i);

Mit der obigen Beschreibung

30

Wird angezeigt,

int i = 30;

System.out.println((double)i);

Bei Ausführung mit

30.0

Es wird sein. Da der Integer-Typ einen Dezimalpunkt hat, wurde er in einen Gleitkomma-Typ (double) geändert.

Beachten Sie jedoch, dass einige Fälle nicht konvertiert werden können.

class Main{
    public static void main(String args[]){
        String str = "Brief";

        System.out.println((int)str);
    }
}

Wenn du rennst

Error:Inkompatibler Typ:String kann nicht in int konvertiert werden:
        System.out.println((int)str);
                                ^

Es wird angezeigt. Es ist grundsätzlich nicht möglich, einen Referenztyp zu einem Basistyp zu machen.

In Bezug auf den numerischen Typ hängt es auch mit der Größenbeziehung zusammen.

class Main{
    public static void main(String args[]){
        int i = 2147483647; //Maximalwert von int

        System.out.println(i);

        i += 1;

        System.out.println(i);
    }
}

Wenn du rennst

2147483647
-2147483648

Und übergelaufen, weil der Maximalwert von int überschritten wurde. Es

class Main{
    public static void main(String args[]){
        int i = 2147483647; //Maximalwert von int

        System.out.println(i);

        System.out.println((long)i + 1);
    }
}

Hier werde ich gegossen, um es zu einem Long zu machen, der viele Zahlen enthält, und dann wird 1 hinzugefügt. Wenn du das machst

2147483647
2147483648

1 kann ohne Überlaufen wie hinzugefügt werden.

Promotion (Promotion)

Dies kann auch plötzlich zu einem unbeabsichtigten Fehler führen, daher werde ich ihn auch hier erläutern. Wenn ich den Typ des Bytes oder Kurzschlusses berechne, wird es plötzlich zum Typ int.

class Main{
    public static void main(String args[]){
        byte b1 = 10;
        byte b2 = 10;

        byte kekka = b1 * b2;
        System.out.println(kekka);
    }
}
test.java:8:Error:Inkompatibler Typ:Int-zu-Byte-Konvertierung, die an Genauigkeit verlieren kann
        byte kekka = b1 * b2;
                        ^

Insbesondere im Code tritt ein Fehler bei der Konvertierung von int in Byte auf, obwohl es keine Beschreibung wie die Konvertierung in int gibt. Ändern wir den Typ der Kekka-Variablen, die wir erhalten, in int, um festzustellen, ob sich der Typ wirklich geändert hat.

class Main{
    public static void main(String args[]){
        byte b1 = 10;
        byte b2 = 10;

        int kekka = b1 * b2;
        System.out.println(kekka);
    }
}
100

Ich konnte ausgeben. Ich habe mit Byte und Byte berechnet, aber Sie können sehen, dass das Ergebnis int ist. Seien Sie vorsichtig, wenn Sie die Nummern erhalten.

Am Ende

Dieser Artikel befasst sich viel mit Schimmelpilzen. Typen sind immer in Java-Beschreibungen enthalten, daher möchte ich sicherstellen, dass Sie sie verstehen.

Recommended Posts

Deklaration, Initialisierung und Typen von Java-Variablen
[Einführung in Java] Informationen zu Variablen und Typen (Variablendeklaration, Initialisierung, Datentyp)
Deklaration / Initialisierung / Datentyp der Java-Variablen (Cast und Promotion)
Java-Variablendeklaration
[Einführung in Java] Informationen zu Variablendeklarationen und -typen
[Java] Variablen- und Typtypen
Informationen zu Java-Variablendeklarationsanweisungen
[Java] Grundtypen und Anweisungshinweise
Java Primer Series (Variationen und Typen)
Grundlegende Datentypen und Referenztypen (Java)
So schreiben Sie eine Java-Variablendeklaration
Informationen zu primitiven Java-Typen und Referenztypen
Java-Basisdatentypen und Referenztypen
[Java] Ausnahmetypen und grundlegende Verarbeitung
Java für Anfänger, Variablen und Typen
Java-Array-Variable
Java-Variablenbereich (Bereich)
Java-Variablenbereich
Java und JavaScript
XXE und Java
[Einführung in Java] Informationen zu Array-Operationen (1D-Array, 2D-Array-Deklaration, Instanziierung, Initialisierung und Verwendung)
Informationen zu Java-Datentypen (insbesondere primitiven Typen) und Literalen
[Java] Verwendung von final in der lokalen Variablendeklaration
[Java] Unterschied zwischen "endgültiger Variable" und "unveränderlichem Objekt"
Getter und Setter (Java)
[Java] Arten von Kommentaren und wie man sie schreibt
[Java] Thread und ausführbar
Docker-Installation und -Initialisierung
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
[Java Silver] Informationen zur Initialisierung
Verwendung von Java-Variablen
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
Informationen zum Java-Grunddatentyp- und Referenztypspeicher
Ich habe die Typen und Grundlagen von Java-Ausnahmen zusammengefasst
timedatectl und Java TimeZone
[Java] Verzweigen und Wiederholen
[Java] Hauptdatentypen
Äquivalenter Vergleich von Java-Wrapper-Klasse und primitivem Typ
Java (Klasse und Instanz)
Java-Grunddatentypen
[Java] Überladen und überschreiben
Weisen Sie Variablen Java8-Lambda-Ausdrücke zu und verwenden Sie sie erneut
[Java] Unterschied zwischen der Zuweisung der Basistypvariablen und der Zuordnung der Referenztypvariablen
Studiere Java # 2 (\ mark and operator)
[Java] Namensnotiz des Variablennamens
Java Version 8 und neuere Funktionen
[Java] Unterschied zwischen == und gleich
[Java] Stapelbereich und statischer Bereich
[Java] Generics-Klasse und Generics-Methode
Java-Programmierung (Variablen und Daten)
Java-Ver- und Entschlüsselung PDF
Java und Iterator Teil 1 Externe Iterator Edition
Informationen zu Java Class Loader-Typen
Java if- und switch-Anweisungen
Ich habe Java-Primitivtypen untersucht
Definition und Instanziierung von Java-Klassen
Apache Hadoop und Java 9 (Teil 1)
[Java] Über String und StringBuilder