Heim  >  Artikel  >  Java  >  Eingehende Analyse von Datentypen und Variablen in Java

Eingehende Analyse von Datentypen und Variablen in Java

高洛峰
高洛峰Original
2017-01-22 10:28:411237Durchsuche

Java-Datentypkonvertierung (automatische Konvertierung und erzwungene Konvertierung)
Die Datentypkonvertierung ist in automatische Konvertierung und erzwungene Konvertierung unterteilt. Bei der automatischen Konvertierung handelt es sich um eine Konvertierung, die „unauffällig“ während der Ausführung des Programms durchgeführt wird. Sie erfordert keine vorherige Deklaration durch den Benutzer. Normalerweise muss die Konvertierung von einem Typ mit niedriger Ziffer in einen Typ mit hoher Ziffer deklariert werden im Code, und die Konvertierungsreihenfolge spielt keine Rolle.
Automatische Datentypkonvertierung

Automatische Konvertierung erfolgt in der Reihenfolge von niedrig nach hoch. Die Prioritätsbeziehung zwischen verschiedenen Datentypen ist wie folgt:
Niedrig------------------------------------------------ ------ -------->High
byte, short, char-> int -> float -> Verschiedene Datentypen werden zuerst in denselben Typ konvertiert und dann werden folgende Konvertierungsregeln ausgeführt:

Eingehende Analyse von Datentypen und Variablen in Java Erzwungene Datentypkonvertierung

Die Das Format der erzwungenen Konvertierung besteht darin, vor den zu konvertierenden Daten „()“ einzufügen und dann den zu konvertierenden Datentyp in Klammern hinzuzufügen. Nachdem einige Daten transformiert wurden, geht die Genauigkeit verloren, während andere genauer sind. Das folgende Beispiel kann dieses Problem veranschaulichen.

public class Demo {
  public static void main(String[] args){
    int x;
    double y;
    x = (int)34.56 + (int)11.2; // 丢失精度
    y = (double)x + (double)10 + 1; // 提高精度
    System.out.println("x=" + x);
    System.out.println("y=" + y);
  }
}

Laufergebnisse:

x=45
y=56.0

Analysieren Sie das obige Programm sorgfältig segment: Da es vor 34,56 eine erzwungene Typkonvertierung von int gibt, wird 34,56 zu 34. Ebenso wird 11,2 zu 11, sodass das Ergebnis von x 45 ist. Vor x gibt es eine doppelte Typumwandlung, sodass der Wert von x 45,0 wird, und die Vorderseite von 10 wird ebenfalls zum doppelten Typ gezwungen, sodass sie ebenfalls 10,0 wird, sodass der Endwert von y 56 wird.

Java-Datentypen und Variablendefinitionen

Java ist eine stark typisierte Sprache und der Datentyp muss beim Deklarieren von Variablen angegeben werden. Der Wert einer Variablen belegt einen bestimmten Speicherplatz. Verschiedene Arten von Variablen nehmen unterschiedliche Größen ein.


Es gibt 8 grundlegende Datentypen in Java, darunter 4 Ganzzahltypen, 2 Gleitkommatypen, 1 Zeichentyp und 1 Boolescher Typ. Bitte sehen Sie sich die Tabelle unten an.

Eingehende Analyse von Datentypen und Variablen in JavaFür ganzzahlige Daten wird normalerweise der Typ int verwendet. Wenn Sie jedoch die Energie darstellen möchten, die durch die auf Hiroshima und Nagasaki abgeworfenen Atombomben freigesetzt wurde, müssen Sie den langen Typ verwenden. Die Byte- und Short-Typen werden hauptsächlich in bestimmten Anwendungen verwendet, z. B. bei der Dateiverarbeitung auf niedriger Ebene oder bei großen Arrays, bei denen die Menge des von ihnen belegten Speicherplatzes kontrolliert werden muss.

In Java hat die Länge ganzzahliger Daten nichts mit der Plattform zu tun, wodurch viele Probleme gelöst werden, die Programmierern entstehen, wenn Software von einer Plattform auf eine andere portiert wird. Im Gegensatz dazu ist die Länge von C/C++-Integer-Daten plattformabhängig und Programmierer müssen geeignete Integer-Typen für verschiedene Plattformen auswählen. Dies kann dazu führen, dass Programme, die auf 64-Bit-Systemen stabil laufen, auf 32-Bit-Systemen beschädigt werden Überlauf.

Oktal hat ein Präfix 0, z. B. 010, entsprechend 8 in Dezimalzahl; ab Java 7 können Sie das Präfix 0b verwenden, um Binärdaten darzustellen, z. B. 0b1001 entsprechend dezimal 9 von 9. Ab Java 7 können Sie auch Unterstriche verwenden, um Zahlen zu trennen, ähnlich wie englische Zahlen. Beispielsweise bedeutet 1_000_000 1.000.000, was einer Million entspricht. Unterstriche dienen lediglich der besseren Lesbarkeit des Codes und werden vom Compiler entfernt.

Darüber hinaus unterstützt Java im Gegensatz zu C/C++ keine vorzeichenlosen Typen.

Der Float-Typ hat eine maximal gültige Anzahl von 7 Ziffern und die gültige Zahlenlänge umfasst den ganzzahligen Teil und den dezimalen Teil. Beispiel:

Hinweis: Nach jedem Float-Typ steht ein Zeichen „F“ oder „f“. Dieses Zeichen bedeutet, dass es sich um einen Float-Typ handelt.
float x = 223.56F;
float y = 100.00f;

Die maximale Anzahl gültiger Ziffern für den Doppeltyp beträgt 15 Ziffern. Wie beim Float-Typ folgt auf double das Flag „D“ oder „d“. Beispiel:

Hinweis: Bei Gleitkommadaten ohne Flag verwendet das System standardmäßig den Typ „Double“.
double x = 23.45D;
double y = 422.22d;
double z = 562.234;

In den meisten Fällen wird der Doppeltyp verwendet, und es ist schwierig, die Anforderungen an die Präzision des Floats zu erfüllen.

Beispiele für die Anwendung verschiedener Datentypen:

public class Demo {
  public static void main(String[] args){
    // 字符型
    char webName1 = '微';
    char webName2 = '学';
    char webName3 = '苑';
    System.out.println("网站的名字是:" + webName1 + webName2 + webName3);
     
    // 整型
    short x=22; // 十进制
    int y=022; // 八进制
    long z=0x22L; // 十六进制
    System.out.println("转化成十进制:x = " + x + ", y = " + y + ", z = " + z);
     
    // 浮点型
    float m = 22.45f;
    double n = 10;
    System.out.println("计算乘积:" + m + " * " + n + "=" + m*n);
  }
}

Laufergebnisse:

网站的名字是:微学苑
转化成十进制:x = 22, y = 18, z = 34
计算乘积:22.45 * 10.0=224.50000762939453

Sie können sehen aus den laufenden Ergebnissen Auch wenn die Gleitkommadaten nur Ganzzahlen und keine Dezimalzahlen enthalten, fügt das System bei der Ausgabe auf der Konsole automatisch einen Dezimalpunkt hinzu und alle Dezimalstellen werden auf 0 gesetzt.

Erklärung des booleschen Typs


Wenn Sie Programmiererfahrung haben und den booleschen Typ verstehen, überspringen Sie bitte das folgende Tutorial. Das folgende Tutorial richtet sich an Leser, die nur über Grundkenntnisse in C-Sprache verfügen (C-Sprache nicht). Boolescher Typ).

Wenn in der C-Sprache die Beurteilungsbedingung wahr ist, wird 1 zurückgegeben, andernfalls wird 0 zurückgegeben, zum Beispiel:

#include <stdio.h>
int main(){
  int x = 100>10;
  int y = 100<10;
  printf("100>10 = %d\n", x);
  printf("100<10 = %d\n", y);
  return 0;
}

Laufendes Ergebnis:

100>10 = 1
100<10 = 0

Aber in Java ist es anders. Wenn die Bedingung erfüllt ist, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben, was ein boolescher Typ ist. Zum Beispiel:

public class Demo {
  public static void main(String[] args){
    // 字符型
    boolean a = 100>10;
    boolean b = 100<10;
    System.out.println("100>10 = " + a);
    System.out.println("100<10 = " + b);
     
    if(a){
      System.out.println("100<10是对的");
    }else{
      System.out.println("100<10是错的");
    }
  }
}

Laufergebnis:

100>10 = true
100<10 = false
100<10是对的

Tatsächlich entspricht „true“ 1 und „false“ 0 , hat aber seinen Namen geändert und ist zu einem eigenständigen Datentyp geworden.

Für eine tiefergehende Analyse von Datentypen und Variablen in Java beachten Sie bitte die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn