Einführung in die Typkonvertierung in Java

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

Typkonvertierung

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

1. Implizite Typkonvertierung

Wenn die Typkonvertierung sofort ohne Beteiligung des Programmierers über den Compiler ausgeführt wird, wird die Typkonvertierung als implizite Typkonvertierung bezeichnet. Der Compiler ermutigt grundsätzlich jeden Operanden zum Datentyp des größten Operanden. Während der gesamten Datenkonvertierung tritt kein Datenverlust auf. Es besteht keine Chance, dass durch die Konvertierung eine Ausnahme ausgelöst wird, und dies wird als typsicher bezeichnet. Die Umwandlung einer kleineren Menge zu einer viel größeren Anzahl kann eine implizite Umwandlung sein. Transformation von Integer-Daten in Float.

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

// Dies kann eine implizite Transformation sein, da float größer als eine ganze Zahl sein kann, daher kein Datenmangel und auch keine Ausnahme.

2. Explizite Typkonvertierung

Die Typkonvertierung, die vom Programmierer erzwungen werden kann, wird als explizite Typkonvertierung bezeichnet. Grundsätzlich macht der Programmierer einen Ausdruck zu einem bestimmten Typ. Explizite Typumwandlung kann als Typumwandlung bezeichnet werden. Während der Datenkonvertierung können Datenverluste auftreten oder auch nicht. Daher besteht die Wahrscheinlichkeit eines Detailverlusts. Es könnte einen Fehler auslösen, wenn es möglicherweise versucht, ohne Typumwandlung durchzuführen. Die Umwandlung einer größeren Zahl in eine kleinere Zahl kann eine explizite Umwandlung sein.

float k=123.456
int i= (int) k

// Dies kann sowohl eine explizite Konvertierung als auch ein typisierter Operator (int) sein. An diesem Punkt können wir möglicherweise eine Ausnahme umgehen, aber Sie können den sichtbaren Datenverlust feststellen. dh i = 123

// .456 kann während des Konvertierungsprozesses gelöscht werden

Typkonvertierung in Java

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

Implizite Typkonvertierung

  • Dies ist im Allgemeinen das, was wir als Erweiterung der Konvertierung bezeichnen. Dies kann automatisch erfolgen, da wir zu einem breiteren Datentyp wechseln. Wenn wir also eine 32-Bit-Ganzzahl haben und zu einer 64-Bit-Ganzzahl wechseln möchten, ist dies weiter. Der Wert kann also sicher verschoben werden, sodass dies implizit erfolgen kann. Und der Compiler muss eine Entscheidung treffen, wie diese Konvertierungen vorgenommen werden sollen, und die Regeln sind ziemlich einfach.
  • Wenn wir einen Ausdruck mit mehreren (gemischten) Ganzzahlgrößen haben, wenn wir einen kurzen und einen langen haben, wird er von den Dingen in die größte Ganzzahlgröße konvertiert. Wenn wir also eine Operation mit einer kurzen und einer langen machen, wird die kurze implizit mit einbezogen.
  • Wenn wir eine Operation mit gemischten Gleitkommagrößen ausführen, also Float und Double, werden sie immer auf Double gesetzt, da Double die größte Gleitkommagröße ist.
  • Und wenn wir dann eine Operation haben, die gemischte Ganzzahltypen und Gleitkommatypen verwendet, wird der Compiler auf den größten Gleitkommawert in der Gleichung umgewandelt. Wenn wir also eine Operation mit einer langen und schwimmenden Hand durchführen, wird die lange auf schwimmende Hand gewirkt.
  • Wenn wir eine Operation mit einem Long und einem Double durchführen, wird das Long in ein Double umgewandelt.

Explizite Typkonvertierung

  • Bei Verwendung dieses Umwandlungsvorgangs führen wir in unserem Code eine explizite Ausführung durch. Wenn wir das tun, übernehmen wir die Verantwortung für alles, was als Ergebnis dieser Art der Konvertierung passiert. Aus diesem Grund können wir sowohl eine Verbreiterung als auch eine Verengung durchführen. Die Erweiterung von 32-Bit auf 64-Bit, die Verengung von 64-Bit auf 32-Bit. Wir sollten uns nur bewusst sein wollen, dass wir wissen, was möglicherweise passieren könnte.
  • Wenn wir eine explizite Umwandlung von einem Gleitkomma in eine Ganzzahl vornehmen, können Gleitkomma einen Bruchteil haben, eine Ganzzahl nicht. Daher würde jeder Bruchteil gelöscht, wenn wir diese Umwandlung in eine Ganzzahl durchführen.
  • Sie möchten vorsichtig sein, wenn Sie eine Verengungskonvertierung durchführen. Wenn es sich um eine 64-Bit-Ganzzahl handelt, können Werte gespeichert werden, 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. Wenn der Wert jedoch zu groß ist, um in ein 32-Bit-Format zu passen, werden Sie einige seltsame Ergebnisse erhalten. Sie möchten also sicherstellen, dass Sie wissen, dass das, was Sie tun, sicher ist, wenn Sie es in einer engeren Besetzung spielen.
  • Und das Letzte ist, dass Sie beim Konvertieren von einer Ganzzahl in einen Gleitkomma vorsichtig sein sollten, denn wenn Sie eine Ganzzahl mit einer großen Anzahl von signifikanten Ziffern haben, können Sie aufgrund der Art und Weise, wie Gleitkomma gespeichert wird, einige davon verlieren diese signifikanten Ziffern.

Beispiele für die Typkonvertierung

Beispiele für die Typumwandlung sind nachfolgend im Detail aufgeführt:

Code:

Wir haben hier ein einfaches Programm, eine Erklärung oben, float, double, byte, short und long, und die Variablen sind jeweils benannt, um zu identifizieren, wie ihre Typen aussehen. Float ist floatVal,

Code:

long ist longVal

Code:

Und das Programm druckt nur eine Erfolgsmeldung aus, wenn es ausgeführt wird.

Schauen wir uns also an, wie einige der Typkonvertierungen hier zum Tragen kommen. Lassen Sie uns zunächst eine Variable erstellen. Wir haben Short und nennen es einfach das Ergebnis.

Nennen wir es Ergebnis1. Und lassen Sie uns einfach eine einfache Aufgabe machen. Und so werden wir ihm zuerst nur das ByteVal zuweisen. Wenn wir dies nun wie erwartet ausführen, führen Sie es erfolgreich aus.

Code:

Ausgabe:

Wir wissen, dass dies eine gültige Zuweisung ist, da ein Byte einer kurzen zugewiesen werden kann, da dies eine erweiterte Konvertierung ist.

Wenn wir dieses ByteVal verwenden und es stattdessen zu einem LongVal machen, erhalten wir hier eine Fehlermeldung, die besagt, dass der Typ inkompatibel ist und ein Konvertierungsverlust von Long zu Short möglich ist.

Code:

Wir können hier also eine explizite Besetzung vornehmen. Wir werden kurz davor stehen. Jetzt ist es also gültig, damit wir es ausführen können.

Code:

Und natürlich funktioniert es. Weil das Lange nicht in ein Kurzes gehen konnte, weil das eine verengende Umwandlung war.

Ausgabe:

Aber wenn Sie die explizite Besetzung voranstellen, ist sie jetzt gültig. Wenn wir wollen, können wir eine Besetzungsnotation sehr explizit setzen und sagen, dass Sie wissen, dass wir, obwohl eine Bytekonvertierung legal ist, explizit zeigen möchten, dass wir sie umsetzen, indem wir die kurze Besetzung dort einfügen, was wir tun können das, und das ist völlig legal.

Code:

Ausgabe:

Schauen wir uns nun ein anderes Szenario an. Wir werden eine weitere Variable erstellen, die wir result2 nennen werden , und result2 ist ebenfalls kurz. Und was wir hier machen wollen, ist, dass wir nur unser ByteVal nehmen und das LongVal subtrahieren wollen. Jetzt wissen wir, dass dies nicht zulässig ist, da das Ergebnis des Ausdrucks die Größe der größten Ganzzahl in ihm sein wird, also die Länge.

Code:

Wenn wir dies ausführen, erhalten wir die Fehlermeldung, dass es nicht gültig ist, ein Long in ein Short zu konvertieren.

Aber nehmen wir an, wir wollen weitermachen und das Ergebnis kurz halten. Wir müssen eine Besetzung machen. Aber wir wollen diesmal den Wert des gesamten Ergebnisses hier abschätzen. Also, was wir machen werden, stellen wir hier den Short Cast vor.

Stellen Sie den Shortcast hier davor. Und wickeln Sie das Ganze in Klammern. Und lass es laufen.

Code:

Es wird erfolgreich ausgeführt.

Ausgabe:

Deklarieren Sie jetzt eine andere Variable namens result3, aber deklarieren Sie diese als long. Wir haben also das Ergebnis 3, und was wir hier tun werden, ist, dass wir das longVal - floatVal zuweisen werden. Wenn wir das ausführen, geht der Fehler bei der Konvertierung von float in long verloren, da immer dann, wenn wir einen Integer-Typ und einen Gleitkomma-Typ haben, das Ergebnis der Gleitkomma-Typ sein wird.

Code:

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

Code:

Ausgabe:

Aber wenn wir jetzt den floatVal hier nehmen und diesen in einen doubleVal konvertieren und versuchen, diesen auszuführen, erhalten wir den Fehler, weil er besagt, dass das Ergebnis ein double sein wird, weil wenn Sie eine Ganzzahl und einen Gleitkomma machen Dies ist die Größe des größten Gleitkommas in der Gleichung.

Code:

Lassen Sie uns fortfahren und dieses Ergebnis verdoppeln, damit wir es jetzt ausführen können.

Code:

Ausgabe:

Fazit

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

  • Ganzzahltypen, Gleitkommatypen, Zeichenarten, Boolesche Typen

3. Geben Sie die Konvertierung ein

  • Wir müssen oft zwischen verschiedenen Datentypen wechseln, da unsere Programme mit zunehmender Komplexität wahrscheinlich mehrere Datentypen enthalten.
  • Der Compiler kann erweiterte Typkonvertierungen verarbeiten und von einem Typ zu einem anderen wechseln, der größere Werte enthalten kann.
  • Sie können Casting jedoch auch verwenden, um explizit die Konvertierungstypen auszuführen, die der Compiler nicht automatisch ausführen kann.

Empfohlene Artikel

Dies ist eine Anleitung zur Typkonvertierung in Java. Hier besprechen wir die Einführung, Typkonvertierung in Java wie implizit und explizit zusammen mit den Beispielen unter Verwendung verschiedener Situationen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. Konstruktor in Java
  2. Sortierung in Java
  3. Konstruktor in Java
  4. JCheckBox in Java
  5. Werfen vs wirft | Die 5 wichtigsten Unterschiede, die Sie kennen sollten
  6. So implementieren Sie Checkbox in Bootstrap
  7. Konvertierung in Java mit Beispielen