Java-Grundlagen – Grundlegende Datentypen

Inhaltsverzeichnis

Vorwort:

integrierte Datentypen

Geben Sie Standard ein

Beispiel:

Integrierte Datentypkonvertierung

Automatische Typkonvertierung (implizite Typkonvertierung):

Casting (explizite Typkonvertierung):

Implizite Besetzung:

Referenztyp


Vorwort:

Alle Datentypen in Java sind in der folgenden Abbildung dargestellt.

integrierte Datentypen

Die Java-Sprache bietet acht Grundtypen. Sechs numerische Typen (vier Ganzzahlen, zwei Gleitkommatypen), ein Zeichentyp und ein boolescher Typ.

  1. Ganzzahltypen:

    • Byte: 8-Bit-Ganzzahl mit Vorzeichen im Bereich von -128 bis 127.
    • kurz: 16-Bit-Ganzzahl mit Vorzeichen im Bereich -32.768 bis 32.767.
    • int: 32-Bit-Ganzzahl mit Vorzeichen im Bereich -2.147.483.648 bis 2.147.483.647.
    • long: 64-Bit-Ganzzahl mit Vorzeichen im Bereich -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807.
  2. Gleitkommatypen:

    • float: 32-Bit-Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit.
    • double: 64-Bit-IEEE 754-Gleitkommazahl mit doppelter Genauigkeit.
  3. Zeichentyp:

    • char: 16-Bit-Unicode-Zeichen ohne Vorzeichen im Bereich von „\u0000“ (0) bis „\uffff“ (65535).
  4. Boolescher Typ:

    • boolean: Gibt den wahren oder falschen Wert an, es gibt nur zwei Werte: wahr und falsch.

Geben Sie Standard ein

In der folgenden Tabelle sind die Standardwerte für jeden Typ in Java aufgeführt:

Art der Daten Standardeinstellungen
Byte 0
kurz 0
int 0
lang 0L
schweben 0,0f
doppelt 0,0d
verkohlen 'u0000'
String (oder ein beliebiges Objekt) Null
Boolescher Wert FALSCH

Beispiel:

public class Test {
    static boolean bool;
    static byte by;
    static char ch;
    static double d;
    static float f;
    static int i;
    static long l;
    static short sh;
    static String str;
 
    public static void main(String[] args) {
        System.out.println("Bool :" + bool);
        System.out.println("Byte :" + by);
        System.out.println("Character:" + ch);
        System.out.println("Double :" + d);
        System.out.println("Float :" + f);
        System.out.println("Integer :" + i);
        System.out.println("Long :" + l);
        System.out.println("Short :" + sh);
        System.out.println("String :" + str);
    }
}

Die Ausgabe ist:

Bool     :false
Byte     :0
Character:
Double   :0.0
Float    :0.0
Integer  :0
Long     :0
Short    :0
String   :null

Integrierte Datentypkonvertierung

Automatische Typkonvertierung, obligatorische Typkonvertierung und implizite Typkonvertierung sind die drei Arten der Typkonvertierung in Java.

  • Automatische Typkonvertierung (implizite Typkonvertierung):

Unter bestimmten Voraussetzungen kann die Konvertierung zwischen den beiden Datentypen automatisch vom Compiler ohne explizite Deklaration erfolgen. Diese Konvertierung muss zwei Bedingungen erfüllen:

  1. Datentypen sind untereinander kompatibel
  2. Der Zieltyp hat einen größeren Wertebereich als der Quelltyp.

Zum Beispiel:

byte b = 3;
int x = b;

Im obigen Code wird die Variable b vom Typ Byte der Variablen x vom Typ int zugewiesen. Da der Wertebereich des int-Typs größer ist als der des byte-Typs, führt der Compiler automatisch eine Typkonvertierung ohne Datenverlust durch. 

  • Casting (explizite Typkonvertierung):

Wenn die beiden Typen nicht miteinander kompatibel sind oder der Wertebereich des Zieltyps kleiner als der des Quelltyps ist, muss die Typkonvertierung explizit deklariert werden.

Zum Beispiel:

int a = 1000;
byte b = (byte) a;

Beim Ausführen dieses Codes kommt es zu einem Datenüberlauf. Da der Wertebereich des Bytetyps zwischen -128 und 127 liegt und 1000 außerhalb des Wertebereichs des Bytetyps liegt. Daher gehen bei der Umwandlung Informationen höherer Ordnung verloren, und das Ergebnis ist, dass der Variablen b der Wert -24 zugewiesen wird , was das Ergebnis von 1000 modulo 256 (-24 = 1000 % 256) ist.

Im obigen Code wird die Variable a vom Typ int in die Variable b vom Typ byte umgewandelt. Da der Wertebereich des Byte-Typs kleiner ist als der des Int-Typs, kann eine erzwungene Konvertierung zu einem Verlust der Datengenauigkeit führen. Daher muss es bei der Konvertierung (byte)explizit deklariert werden, um den Compiler anzuweisen, eine obligatorische Typkonvertierung durchzuführen.

Es ist zu beachten, dass bei der erzwungenen Typkonvertierung der Wertebereich zwischen Quelltyp und Zieltyp sorgfältig berücksichtigt werden muss, um einen Datenüberlauf oder Präzisionsverlust zu vermeiden.

  • Implizite Besetzung:

  1. Der Standardtyp für Ganzzahlen ist int: In Java ist der Standardtyp für Ganzzahlliterale int. Wenn Sie beispielsweise eine Ganzzahlvariable direkt mit einem Literalwert initialisieren, verwendet der Compiler standardmäßig den Typ int.
  2. Dezimalzahlen sind standardmäßig vom Typ Double-Gleitkomma: In Java ist der Standardtyp von Dezimalzahlen (einschließlich Dezimalpunkt und wissenschaftlicher Notation) Double. Wenn Sie eine Dezimalzahl vom Typ „Float“ definieren möchten, müssen Sie nach der Zahl das Suffix „F“ oder „f“ hinzufügen, um eindeutig anzugeben, dass es sich um eine Zahl vom Typ „Float“ handelt. (Beachten Sie, dass der Compiler den Dezimaltyp standardmäßig auf den Double-Typ setzt, wenn kein F- oder f-Suffix angegeben ist.)

Zum Beispiel:

int a = 10; // 这里的整数字面值10被隐含地当作int类型处理
float b = 3.14F; // 这里的3.14被隐含地当作double类型,添加F后缀指定为float类型
System.out.println("a=" + a);
System.out.println("b=" + b);

Operationsergebnis:

a=10
b=3.14

Referenztyp

  • In Java sind Variablen vom Referenztyp C/C++-Zeigern sehr ähnlich. Ein Referenztyp zeigt auf ein Objekt, und eine Variable, die auf ein Objekt zeigt, ist eine Referenzvariable. Diese Variablen werden bei der Deklaration als spezifischer Typ angegeben, z. B. „Employee“, „Puppy“ usw. Sobald eine Variable deklariert ist, kann ihr Typ nicht mehr geändert werden.
  • Objekte und Arrays sind Referenzdatentypen.
  • Der Standardwert für alle Referenztypen ist null.
  • Eine Referenzvariable kann verwendet werden, um auf jeden kompatiblen Typ zu verweisen.

In Java können wir benutzerdefinierte Referenztypen erstellen, beispielsweise die Site-Klasse. In diesem Beispiel wird zuerst eine Referenzvariable namens „site“ deklariert, deren Typ „Site“ ist. Verwenden Sie dann das Schlüsselwort new, um ein Site-Objekt zu erstellen und dessen Adresse der Site-Variablen zuzuweisen.

Site site = new Site("Runoob");

Im obigen Code wird auf Siteeine benutzerdefinierte SiteKlasse verwiesen, die Eigenschaften und Verhaltensweisen (Methoden) im Zusammenhang mit der Website enthalten kann. Die in Klammern übergebenen Parameter sind "Runoob"durch den Konstruktor initialisierte SiteObjekte .

Es ist zu beachten, dass in diesem Prozess Sitedie Klasse definiert und vorhanden sein muss, da es sonst zu Kompilierungsfehlern kommt.

Auf diese Weise können wir Referenzvariablen verwenden, um die Eigenschaften und Methoden des Objekts sitezu manipulieren und darauf zuzugreifen . SiteWir können beispielsweise siteMethoden für ein Objekt aufrufen oder auf seine Eigenschaften zugreifen:

site.getName();      // 调用Site对象的getName方法
site.setName("Google");    // 修改Site对象的name属性

Zusammenfassend lässt sich sagen, dass Variablen eines Referenztyps bei der Deklaration einen bestimmten Typ angeben und zum Verweisen auf damit kompatible Objekte verwendet werden können. Durch die Verwendung von Referenzvariablen können wir Eigenschaften und Methoden von Objekten manipulieren und darauf zugreifen. Gleichzeitig müssen Sie auf den Standardwert des Referenztyps achten null, was bedeutet, dass die Referenzvariable derzeit auf kein Objekt zeigt.

Supongo que te gusta

Origin blog.csdn.net/m0_74293254/article/details/132209748
Recomendado
Clasificación