Heim  >  Artikel  >  Java  >  Typkonvertierung in Java

Typkonvertierung in Java

PHPz
PHPzOriginal
2024-08-30 15:12:18691Durchsuche

Sobald Variablen und Konstanten verschiedener Typen in einem Ausdruck zusammengefasst sind, können sie in einen ähnlichen Typ geändert werden. Diese Technik der Umwandlung eines einzelnen vordefinierten Typs in einen anderen wird in Java als Typkonvertierung bezeichnet.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Typkonvertierung

Es gibt zwei verschiedene Arten der Konvertierung, die wir in Programmiersprachen verwenden.

Typkonvertierung in Java

1. Implizite Typkonvertierung

Wenn die Typkonvertierung sofort durch den Compiler ohne Beteiligung des Programmierers durchgeführt wird, wird die Typkonvertierung als implizite Typkonvertierung bezeichnet. Der Compiler unterstützt grundsätzlich jeden Operanden in Richtung des Datentyps des größten Operanden. Während der Datenkonvertierung tritt kein Datenverlust auf. Bei der Konvertierung besteht keine Möglichkeit, eine Ausnahme auszulösen, und wird daher als typsicher bezeichnet. Die Umrechnung einer kleineren Menge in eine viel größere Zahl kann eine implizite Umrechnung sein. Umwandlung von Daten vom Typ Integer in Float.

float i=0;
int j=10;
i=j;

// Dies kann eine implizite Transformation sein, da Float größer als eine Ganzzahl sein kann, daher kein Mangel an Daten und auch keine Ausnahme.

2. Explizite Typkonvertierung

Die Typkonvertierung, die durch den Programmierer erzwungen werden kann, wird als explizite Typkonvertierung bezeichnet. Grundsätzlich macht der Programmierer einen Ausdruck zu einem bestimmten Typ. Die explizite Typtransformation kann als Typumwandlung bezeichnet werden. Bei der Datenkonvertierung kann es zu einem Datenverlust kommen oder auch nicht. Daher besteht die Möglichkeit eines Detailverlusts. Es könnte einen Fehler auslösen, wenn möglicherweise versucht würde, ohne Typumwandlung auszuführen. Die Umwandlung einer größeren Zahl in kleinere Zahlen kann eine explizite Konvertierung sein.

float k=123.456
int i= (int) k

// Dies kann eine explizite Konvertierung sein, aber auch (int) ist eine Typumwandlung, ein Operator. An diesem Punkt gelingt es uns möglicherweise, einer Ausnahme zu entgehen, aber Sie können den sichtbaren Datenverlust feststellen. d.h. i=123

// .456 kann im Konvertierungsprozess weggelassen werden

Typkonvertierung in Java

Wie bei anderen Programmiersprachen gibt es in Java zwei Arten der Konvertierung:

Implizite Typkonvertierung

  • Dies ist im Allgemeinen das, was wir Erweiterungskonvertierung nennen, und diese können automatisch durchgeführt werden, da wir auf breitere Datentypen umsteigen. Wenn wir also eine 32-Bit-Ganzzahl haben und zu einer 64-Bit-Ganzzahl wechseln möchten, ist das breiter. Der Wert kann also sicher verschoben werden, sodass dies implizit erfolgen kann. Der Compiler muss entscheiden, wie diese Konvertierungen durchgeführt werden, und die Regeln sind ziemlich einfach.
  • Wenn wir einen Ausdruck mit mehreren (gemischten) Ganzzahlgrößen darin haben, wenn wir short und long haben, wird er unabhängig von der größten Ganzzahlgröße konvertiert. Wenn wir also eine Operation mit einem Short und einem Long durchführen, wird der Short implizit in Along umgewandelt.
  • Wenn wir eine Operation mit gemischten Gleitkommagrößen ausführen, also eine Gleitkommagröße und eine Double haben, werden sie immer zur Double gehen, da Double die größte Gleitkommagröße ist.
  • Und wenn wir dann eine Operation haben, die gemischte Ganzzahltypen und Gleitkommatypen verwendet, wandelt der Compiler in den größten Gleitkommawert in der Gleichung um. Wenn wir also eine Operation mit einer Longe und einer Schwimmleine durchführen, wird die Longe ins Wasser geworfen.
  • Wenn wir eine Operation mit einem Long und einem Double durchführen, wird das Long dann in ein Double umgewandelt.

Explizite Typkonvertierung

  • Wir führen in unserem Code explizit eine Ausführung durch, wenn wir diesen Umwandlungsvorgang verwenden. Wenn wir das tun, übernehmen wir die Verantwortung für alles, was als Folge dieser Art von Konvertierung passiert. Aus diesem Grund können wir sowohl eine Erweiterungskonvertierung als auch eine Verengungskonvertierung durchführen. Es wird von 32-Bit auf 64-Bit erweitert, von 64-Bit auf 32-Bit reduziert. Wir sollten uns einfach darüber im Klaren sein, dass wir wissen, was möglicherweise passieren könnte.
  • Wenn wir eine explizite Umwandlung von einem Gleitkomma in eine Ganzzahl durchführen, können Gleitkommazahlen einen Bruchteil haben, Ganzzahlen jedoch nicht, sodass jeder Bruchteil weggelassen wird, wenn wir diesen Gleitkommawert in eine Ganzzahl umwandeln.
  • Sie sollten bei der Durchführung einer einschränkenden Konvertierung vorsichtig sein. Wenn wir eine 64-Bit-Ganzzahl haben, kann sie Werte enthalten, die zu groß sind, um in eine 32-Bit-Ganzzahl zu passen.
  • Wenn wir also dieses 64-Bit in ein 32-Bit-Format umwandeln, wird das Programm dies tatsächlich tun, aber wenn der Wert zu groß ist, um in ein 32-Bit-Format zu passen, erhalten Sie einige seltsame Ergebnisse. Sie möchten also sicherstellen, dass Sie sicher sind, dass das, was Sie tun, sicher ist, wenn Sie einen schmaleren Gips verwenden.
  • Und der letzte Punkt ist nur, dass Sie bei der Konvertierung von einer Ganzzahl in eine Gleitkommazahl vorsichtig sein sollten, denn wenn Sie eine Ganzzahl mit einer großen Anzahl signifikanter Ziffern haben, können Sie aufgrund der Art und Weise, wie Gleitkommazahlen gespeichert werden, dies tun einige dieser wichtigen Ziffern verlieren.

Beispiele zur Typkonvertierung

Beispiele für die Typkonvertierung werden unten im Detail aufgeführt:

Code:

Typkonvertierung in Java

Wir haben hier ein einfaches Programm, einige Deklarationen oben, float, double, byte, short und long, und die Variablen sind jeweils benannt, um ihre Typen zu identifizieren, z. B. float ist floatVal,

Code:

Typkonvertierung in Java

long ist longVal

Code:

Typkonvertierung in Java

Und das Programm gibt einfach eine Erfolgsmeldung aus, wenn es ausgeführt wird.

Typkonvertierung in Java

Lassen Sie uns also einfach sehen, wie einige der Typkonvertierungen hier ins Spiel kommen. Lassen Sie uns zunächst einmal eine Variable erstellen. Wir haben es kurz und nennen es einfach das Ergebnis.

Genau genommen nennen wir es result1. Und lassen Sie uns einfach eine einfache Aufgabe erledigen. Und so weisen wir ihm zunächst einfach den byteVal zu. Nun, wie wir erwarten, führen wir dies erfolgreich aus.

Code:

Typkonvertierung in Java

Ausgabe:

Typkonvertierung in Java

Wir wissen, dass dies eine gültige Zuweisung ist, da ein Byte einem Short zugewiesen werden kann, da es sich um eine erweiternde Konvertierung handelt.

Wenn wir diesen byteVal jedoch nehmen und ihn stattdessen zu einem longVal machen, ist es jetzt tatsächlich ein long; Wenn wir dies ausführen, erhalten wir hier eine Fehlermeldung, die besagt, dass der Typ inkompatibel ist und möglicherweise die Konvertierung von lang nach kurz verloren geht.

Code:

Typkonvertierung in Java

Typkonvertierung in Java

Was wir hier also tun können, ist, eine explizite Besetzung vorzunehmen. Davor werden wir einfach kurz machen. Jetzt ist es gültig und wir können es ausführen.

Code:

Typkonvertierung in Java

Und natürlich funktioniert es. Denn die Long-Position konnte nicht in eine Short-Position umgewandelt werden, da dies eine enger werdende Konvertierung war.

Ausgabe:

Typkonvertierung in Java

Aber indem man die explizite Besetzung voranstellt, ist es jetzt gültig. Wenn wir möchten, können wir eine sehr explizite Umwandlungsnotation festlegen und sagen: Wissen Sie, wir wissen, dass eine Bytekonvertierung zwar zulässig ist, wir aber explizit zeigen möchten, dass wir sie umwandeln, indem wir dort die kurze Umwandlung einfügen, was wir tun können das, und das ist völlig legal.

Code:

Typkonvertierung in Java

Ausgabe:

Typkonvertierung in Java

Werfen wir nun einen Blick auf ein anderes Szenario. Wir werden eine weitere Variable erstellen, die wir result2, nennen werden, und result2 ist ebenfalls kurz. Und was wir hier tun wollen, ist, dass wir einfach unseren byteVal nehmen und den longVal subtrahieren wollen. Jetzt wissen wir, dass das nicht zulässig ist, da das Ergebnis des Ausdrucks die Größe der größten ganzen Zahl darin sein wird, also die Länge.

Code:

Typkonvertierung in Java

Wenn wir dies also ausführen, erhalten wir eine Fehlermeldung, die besagt, dass die Konvertierung einer Long- in eine Short-Position nicht zulässig ist.

Typkonvertierung in Java

Aber sagen wir mal, wir wollen weitermachen und das Ergebnis so kurz wie möglich halten. Wir müssen eine Besetzung machen. Aber wir wollen diese Zeit hier als Wert des Gesamtergebnisses darstellen. Was wir also tun werden, ist, die Kurzbesetzung hier voranzustellen.

Stellen Sie hier die Kurzbesetzung voran. Und schließen Sie das Ganze in Klammern ein. Und führen Sie es aus.

Code:

Typkonvertierung in Java

Es wird erfolgreich ausgeführt.

Ausgabe:

Typkonvertierung in Java

Deklarieren Sie nun eine weitere Variable namens result3, aber deklarieren Sie diese als long. Wir haben also Ergebnis 3 erhalten, und was wir hier tun werden, ist, dass wir diesem unseren longVal – floatVal zuweisen. Wenn wir das also ausführen, geht der Fehler bei der Konvertierung von Float in Long verloren, denn wann immer wir einen Integer-Typ und einen beliebigen Gleitkomma-Typ haben, wird das Ergebnis der Gleitkomma-Typ sein.

Code:

Typkonvertierung in Java

Typkonvertierung in Java

Lassen Sie uns also fortfahren und unser Ergebnis jetzt in einen Gleitkommawert umwandeln. Wenn wir das also zu einem Float machen, sollten wir in der Lage sein, es zu betreiben. Und erfolgreich ausgeführt.

Code:

Typkonvertierung in Java

Ausgabe:

Typkonvertierung in Java

Aber jetzt, wenn wir den floatVal hier nehmen und ihn in einen doubleVal umwandeln, und wenn wir versuchen, dies auszuführen, erhalten wir die Fehlermeldung, weil es besagt, dass das Ergebnis ein Double sein wird, weil, wenn Sie eine Ganzzahl eingeben und ein Gleitkomma, es ist die Größe des größten Gleitkommas in der Gleichung.

Code:

Typkonvertierung in Java

Typkonvertierung in Java

Also machen wir weiter und machen aus diesem Ergebnis ein Double, damit wir es jetzt ausführen können.

Code:

Typkonvertierung in Java

Ausgabe:

Typkonvertierung in Java

Fazit

1. Variablen sind in Java stark typisiert
2. Primitive Typen

  • Ganzzahltypen, Gleitkommatypen, Char-Typ, Boolescher Typ

3. Typkonvertierung

  • Wir müssen oft zwischen verschiedenen Typen wechseln, da unsere Programme mit zunehmender Komplexität wahrscheinlich mehrere Datentypen umfassen.
  • Der Compiler kann Typkonvertierungen verarbeiten, die sich erweitern und von einem Typ zu einem anderen wechseln, der größere Werte enthalten kann,
  • Aber Sie können Casting auch verwenden, um explizit solche Konvertierungsarten durchzuführen, die der Compiler nicht automatisch durchführen kann.

Das obige ist der detaillierte Inhalt vonTypkonvertierung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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
Vorheriger Artikel:Servlet-ArchitekturNächster Artikel:Servlet-Architektur