Deklaration / Initialisierung / Datentyp der Java-Variablen (Cast und Promotion)

Zweck dieses Artikels

Ich studiere Java und schreibe einen Artikel, um das Gelernte auszugeben und Wissen aufzubauen. Ich werde das Gelernte wie folgt separat beschreiben.

Variablendefinition

Das Definieren von Variablen in Java erfordert die folgenden zwei Schritte:

  1. Geben Sie den Datentyp des Werts an, der in die Variable eingefügt werden soll
  2. Legen Sie den Variablennamen fest

Beispiel:

  1. Typ int (numerischer Wert)     int number; int ist der Datentyp, der eine Zahl darstellt, und number ist der Variablenname. Im obigen Beispiel ist die Variablennummer vom Typ int definiert.
  2. Zeichenfolgentyp     String text; Zeichenfolge ist ein Datentyp, der eine Zeichenfolge darstellt, und der erste Buchstabe wird groß geschrieben. Text ist der Variablenname. Im obigen Beispiel wird ein Variablentext vom Typ String definiert.

Fügen Sie wie bei 1 und 2 am Ende des Satzes ein Semikolon hinzu.

Regeln für die Benennung von Variablen

・ Das erste Zeichen ist Alphabet Groß- / Kleinbuchstaben, $, _ usw. Symbole

・ Der Fall wird streng unterschieden.

・ Nach dem zweiten Zeichen können Zahlen verwendet werden.

-Die Anzahl der Zeichen (Länge) ist unbegrenzt.

-Null, true, false kann nicht verwendet werden.

・ Reservierte Wörter können nicht verwendet werden. Reservierte Wörter sind Namen, die bereits in der Java-Sprache verwendet werden. Beispiel: if, while, switch, etc.

Variable Initialisierung

Wie im folgenden Beispiel gezeigt, wird das Zuweisen eines Werts gleichzeitig mit dem Definieren einer Variablen als Variableninitialisierung bezeichnet. Beispiel:

  1. Typ int (Ganzzahl)     int number = 3; Im obigen Beispiel wird die Variablennummer vom Typ int definiert und die Nummer 3 zugewiesen.
  2. Zeichenfolge * * Es gibt keinen Zeichenfolgentyp, der mehrere Zeichen im grundlegenden Java-Typ darstellt. Der Zeichenfolgentyp wird als Klasse namens String bereitgestellt. * * String text =" Zeichen "; Im obigen Beispiel wird ein variabler Text vom Typ String definiert und das "Zeichen" der Zeichenfolge zugewiesen.

Java-Datentyp

Die Typen werden in der obigen Erläuterung erwähnt, aber die Typen werden auch nach der Art des Werts unterteilt. Abhängig vom Datenbereich, der verarbeitet werden kann, gibt es Datentypen. Je größer der Datenbereich ist, desto mehr Speicher wird verbraucht. Stellen Sie sicher, dass Sie den entsprechenden Datentyp entsprechend der zu verarbeitenden Datenmenge und der Speichermenge auswählen.

Ganzzahliger Typ

Datentyp Größe Wertebereich
byte 1byte -Ganzzahliger Wert von 128 bis 127
char 1byte '\u0000'Von'\uffff'Ein ganzzahliger Wert bis zu. (Dies ist 0 bis 65535)
short 1byte -Ein ganzzahliger Wert von 32768 bis 32767
int 1byte -Ein ganzzahliger Wert von 2147483648 bis 2147483647.
long 1byte -Ein ganzzahliger Wert von 9223372036854775808 bis 9223372036854775807.

Gleitkomma-Typ

Datentyp Größe Wertebereich
float 4byte 32-Bit-Dezimalpunkt mit einfacher Genauigkeit
double 8byte 63-Bit-Dezimalpunkt mit einfacher Genauigkeit

Logischer Typ

Datentyp Größe Wertebereich
boolean 1bit Ein Wert, der entweder wahr oder falsch ist.

Referenztyp

Es gibt vier Referenztypen: Klassentyp, Schnittstellentyp, Typvariable und Array-Typ. Daten vom Klassentyp und vom Schnittstellentyp geben die Position des Objekts an, und Daten vom Array-Typ geben die Position des Array-Objekts an. Der Unterschied zum Basistyp besteht darin, dass der Basistyp die Daten selbst darstellt, während der Referenztyp den Speicherort der Daten angibt. Einfach ausgedrückt repräsentiert der Basistyp das Haus selbst und der Referenztyp die Adresse des Hauses.

Beispiel:

Main.java


class Main{
  public static void main(String args[]){
    int a[] = {1};
    int b[] = a;  //Wobei b den gleichen Referenzwert wie a hat
    System.out.println(a[0]);  //a und b haben das gleiche Ausgabeergebnis
    System.out.println(b[0]);

    b[0] = 5;  //Der referenzierte Wert wird aktualisiert

    System.out.println(a[0]);  //a und b haben das gleiche Ausgabeergebnis
    System.out.println(b[0]);
  }
}

Ausführungsergebnis ↓

1
1
5
5

Im obigen Beispiel sehen a und b dieselbe Referenz durch den Code "int b [] = a;". Bis sich der Referenzwert mit dem Code "b [0] = 5;" in der 5. Zeile ändert, beziehen sich beide auf "1", aber nachdem der Referenzwert auf "5" aktualisiert wurde. Bezieht sich auf "5".

Besetzung (Typkonvertierung)

Das Durchführen einer Konvertierung mit variablem Typ wird als Casting bezeichnet. Variablen, die ursprünglich vom Typ int waren, können in long type geändert werden und umgekehrt. Bei der Berechnung der Multiplikation usw. kann dies nur mit demselben Datentyp erfolgen. Konvertieren Sie verschiedene Typen in denselben Typ. Es gibt zwei Arten von Java-Typkonvertierungsmethoden: die automatische Konvertierungsmethode und die manuelle Konvertierungsmethode. Wenn Sie den String-Typ und den int-Typ hinzufügen, wird der int-Typ automatisch in den String-Typ konvertiert.

Beispiel:

test.java


System.out.printIn("Apfel" + "5" + "Es gibt");

→ Umgerechnet in "Äpfel" + "5" + "Es gibt"

Es gibt 5 Äpfel.

Wird ausgegeben.

Selbst wenn Sie viele Berechnungen mit dem Integer-Typ int durchführen, ist das Berechnungsergebnis der numerische Typ. Beispiel:

test.java


System.out.printIn(5/2);

2

Eigentlich ist 2.5 die richtige Antwort, aber da 2.5 ein doppelter Typ ist, kann er nicht zwischen int-Typen berechnet werden. Wenn Sie möchten, dass das Berechnungsergebnis von 5/2 2,5 beträgt,

Main.java


System.out.printIn(5.0/2);

Wird besorgt. Dies liegt daran, dass das Berechnungsergebnis von int type und double type double type ist (wenn one double ist, ist das Ergebnis double). Auf diese Weise wird die Ganzzahl durch eine Minderheit dargestellt, wenn das Berechnungsergebnis durch eine schwebende Minderheit dargestellt wird.

Cast, wenn Sie einen genauen Wert in der Berechnung zwischen int-Typen erhalten möchten.

Main.java


int number1 = 13;
int number2 = 4;
System.out.printIn((double)number1/number2);

3.25

** Das Umwandeln von einem großen in einen kleinen Typ kann zu Datenverlust führen. ** ** ** Beachten Sie den ursprünglichen Datenbereich des Basistyps und den Datenbereich des gegossenen Basistyps.

Main.java


public class Main {
 
    public static void main(String[] args) {
        double doubleMax = Double.MAX_VALUE;
        int result = (int) doubleMax; //Wandeln Sie den Maximalwert von double in int type um und weisen Sie ihn dem Ergebnis der Variablen int type zu
        
        System.out.println(doubleMax);
        System.out.println(result);
    }

}

Ausführungsergebnis ↓

1.7976931348623157E308
2147483647

Es verursacht keinen Fehler, aber der Maximalwert des Doppeltyps wird durch den Maximalwert des Int-Typs ersetzt, bei dem es sich um einen unbeabsichtigten Wert handelt.

Promotion (Typ Promotion)

Es gibt auch eine Aktion für die Typkonvertierung. Die Heraufstufung ist ein Mechanismus, der den Wert bei der Berechnung des Werts automatisch in einen breiteren Typ umwandelt. Wenn Sie beispielsweise eine Anzahl von Typ Long berechnen, wird der Typ des anderen Werts automatisch in Long konvertiert.

Berechnen Sie die Byte-Typ-Variable a und die Long-Typ-Variable b. Ein Fehler tritt auch dann auf, wenn Sie versuchen, das Ergebnis mit der Antwort "Byte-Typvariable" zu erhalten.

Main.java


class Main{
  public static void main(String args[]){
      byte a = 10;
      long b = 20000;

      byte answer = a * b;
      System.out.println(answer);
  }
}

Ausführungsergebnis ↓

//Type mismatch: cannot convert from long to byte

Um das richtige Ergebnis zu erhalten, ändern Sie den Typ der variablen Antwort, die das Ergebnis empfängt, von Byte in Long.

Main.java


class Main{
  public static void main(String args[]){
      byte a = 10;
      long b = 20000;

      long answer = a * b;
      System.out.println(answer);
  }
}

Ausführungsergebnis ↓

200000

Wenn keiner der beiden Typen ein langer Typ ist, werden die Werte für Bytetyp, kurzen Typ und Zeichentyp in den Typ int konvertiert.

Wenn einer ein Float und der andere kein Double ist, wird der andere Wert in einen Float konvertiert.

Main.java


class Main{
  public static void main(String args[]){
      byte a = 10;
      float b = 0.83f;

      byte answer = a * b;
      System.out.println(answer);
  }
}

Ausführungsergebnis ↓

//Type mismatch: cannot convert from float to byte

Main.java


class Main{
  public static void main(String args[]){
      byte a = 10;
      float b = 0.83f;

      float answer = a * b;
      System.out.println(answer);
  }
}

Ausführungsergebnis ↓

8.3

Wenn Sie das Berechnungsergebnis in Bytes umwandeln, tritt alternativ kein Fehler auf. In diesem Fall werden jedoch die Ziffern nach dem Dezimalpunkt weggelassen, sodass es sich nicht um eine genaue Antwort handelt.

Main.java


class Main{
  public static void main(String args[]){
      byte a = 10;
      float b = 0.83f;

      byte answer = (byte)(a * b);
      System.out.println(answer);
  }
}

Ausführungsergebnis ↓

8

Wenn Sie mit Char-Typ oder Byte-Typ ohne Heraufstufung rechnen, ist die Antwort überwältigend und die Antwort nicht korrekt. Wenn Sie die Berechnung nicht zwischen Bytes umwandeln, tritt ein Fehler auf.

Main.java


class Main{
  public static void main(String args[]){
      byte a = 1;
      byte b = 2;

      byte answer = a * b;
      System.out.println(answer);
  }
}

Ausführungsergebnis ↓

//Type mismatch: cannot convert from int to byte Java

Um das richtige Ergebnis zu erhalten, ändern Sie den Typ der variablen Antwort, die das Ergebnis empfängt, von Byte in Int.

Main.java


class Main{
  public static void main(String args[]){
      byte a = 1;
      byte b = 2;

      int answer = a * b;
      System.out.println(answer);
  }
}

Ausführungsergebnis ↓

 2

Wenn Sie das Ergebnis in Bytes erhalten möchten, wandeln Sie das Berechnungsergebnis in Byte um.

Main.java


class Main{
  public static void main(String args[]){
      byte a = 1;
      byte b = 2;

      byte answer = (byte)(a * b);
      System.out.println(answer);
  }
}

Ausführungsergebnis ↓

2

abschließend

Wie Sie sehen können, tritt in Java ein Fehler an einer unerwarteten Stelle auf, wenn Sie den Typ nicht beachten. Seien Sie also vorsichtig.

Recommended Posts

Deklaration / Initialisierung / Datentyp der Java-Variablen (Cast und Promotion)
[Einführung in Java] Informationen zu Variablen und Typen (Variablendeklaration, Initialisierung, Datentyp)
Deklaration, Initialisierung und Typen von Java-Variablen
Java-Variablendeklaration
[Einführung in Java] Informationen zur Typkonvertierung (Besetzung, Promotion)
[Verarbeitung × Java] Datentyp und objektorientierte Programmierung
[Java] Datentyp ①-Basistyp
Informationen zum Java-Grunddatentyp- und Referenztypspeicher
Java-Lernnotiz (Datentyp)
Basisdatentyp und Referenztyp
Java-Programmierung (Variablen und Daten)
Informationen zu Java-Variablendeklarationsanweisungen
[Java] Unterschied zwischen der Zuweisung der Basistypvariablen und der Zuordnung der Referenztypvariablen
Grundlegende Datentypen und Referenztypen (Java)
[Java] Datentyp / Matrixprodukt (AOJ ⑧ Matrixprodukt)
Java SE Bronze Prüfungsnummer: 1Z0-818 (Erklärung und Verwendung von Daten) (Oktober 2020)
So schreiben Sie eine Java-Variablendeklaration
Java-Basisdatentypen und Referenztypen
[Einführung in Java] Informationen zu Array-Operationen (1D-Array, 2D-Array-Deklaration, Instanziierung, Initialisierung und Verwendung)
[Java] Implizite Typumwandlung (AOJ10-Summe von Zahlen)
Konvertierung des Java-Datumsdatentyps (Datum, Kalender, Zeichenfolge)
Erstellen Sie Binärdaten variabler Länge in Java
Verwenden Sie den PostgreSQL-Datentyp (jsonb) aus Java
[Java ~ Informationen zur Variablendefinition und Typkonvertierung ~] Studiennotiz
[Persönliches Memo] Der Java-Datentyp ist ärgerlich
[Java] Spickzettel für Datentyp / Zeichenkettenklasse
Java-Studie Nr. 3 (Typkonvertierung und Befehlsausführung)
[Einführung in Java] Informationen zu Variablendeklarationen und -typen
[Java] Berechnungsmechanismus, Operatoren und Typkonvertierung
Informationen zu Java-Datentypen (insbesondere primitiven Typen) und Literalen
Informationen zu in Java verwendeten Variablen (lokaler Variablentyp)
[Java] Verwendung von final in der lokalen Variablendeklaration
Organisiertes Memo im Kopf (Java - Datentyp)
Der [Java] char-Typ kann in den int-Typ umgewandelt werden
[Java] Unterschied zwischen "endgültiger Variable" und "unveränderlichem Objekt"