Der [Java] char-Typ kann in den int-Typ umgewandelt werden

Einführung

Als ich das Java SE8 Silver-Problembuch las, hieß es: "Der Char-Typ kann implizit in den Int-Typ oder den Double-Typ umgewandelt werden." Ich schäme mich zu sagen, dass ich Java seit Jahren in meinem Geschäft verwende, aber ich wusste diese Tatsache überhaupt nicht.

Also habe ich versucht herauszufinden, warum char type in int type oder double type umgewandelt werden kann, aber der Grund wurde nicht in die Problemsammlung geschrieben, also habe ich es selbst untersucht. Ich habe versucht, die Ergebnisse zusammenzufassen.

Code für die Untersuchung verwendet

TypeCast.java


public class TypeCast {
	public static void main(String[] args) {
		char ch = '1';

		//Implizit in int type und double type umwandeln.
		int i = ch;
		double d = ch;
		System.out.println(ch + "Ergebnis des Castings zum Typ int: " + i);
		System.out.println(ch + "Ergebnis des Gießens auf Doppeltyp: " + d);

		//Übergeben Sie den Char-Typ als Argument an eine Methode, deren Argument der Double-Typ ist.
		foo(ch);
	}

	static void foo(double d) {
		System.out.println("Doppeltyp: " + d);
	}
}

Ausgabeergebnis

Ergebnis von Casting 1 auf Int-Typ: 49
Ergebnis des Gießens 1 auf Doppeltyp: 49.0
Doppeltyp: 49.0

Der Grund, warum der Zeichen-Typ "1" in den Int-Typ umgewandelt wird, wird zu "49".

Betrachtet man die Wrapper-Klasse vom Typ char Zeichentyp-API, "Unicode-Zeichendarstellung" Ist geschrieben. Wenn Sie sich also "1" in [Unicode-Tabelle] ansehen (https://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E8%A6%A7_0000-0FFF), lautet der Wert "U + 0031". Sie können sehen, dass es durch dargestellt wird.

Die Werte in der Unicode-Tabelle sind hexadezimal, was eigentlich "0x31" ist. Wenn Sie dies also in dezimal ändern, ist es "49". Mit anderen Worten, wenn der Zeichentyp "1" implizit in den Typ int umgewandelt wird, wird diese "49" in der Variablen int type gespeichert.

Zusammenfassung

Recommended Posts

Der [Java] char-Typ kann in den int-Typ umgewandelt werden
Gibt an, ob Optionen aufgrund unterschiedlicher Java-Versionen verwendet werden können
Java soll ab heute dabei sein
Verwendung des Java-Aufzählungstyps
Java-Argumente, die mit gradle run ausgeführt werden sollen, können mit --args angegeben werden (seit Gradle 4.9).
[Java] Implizite Typumwandlung (AOJ10-Summe von Zahlen)
[java] Zusammenfassung des Umgangs mit char
[Java] Konvertiert Null vom Objekttyp in String-Typ
Grund, L zu der Zahl hinzuzufügen, die in den langen Java-Typ eingegeben werden soll
Typkonvertierung vom Java Big Decimal-Typ zum String-Typ
Dinge, die Sie beim Schreiben von Java beachten sollten
[Java] Achten Sie auf den Schlüsseltyp der Karte
Es scheint kein anderes zu geben - wenn in Java
Java-Typkonvertierung (String, int, Datum, Kalender usw.)
Minecraft BE Serverentwicklung von PHP nach Java
[Java] Beim Zuweisen einer Zeichenfolge zu einer Zeichenvariablen ist ein Fehler mit inkompatiblen Typen aufgetreten.
[Java] Aufzählungstyp
Java Optionaler Typ
Überprüfen Sie, ob eine Zeichenfolge ohne Verwendung von Integer # parseInt in int konvertiert werden kann
Java-Doppeltyp
[Java] Einführung in Java
Einführung in Java
Deklaration / Initialisierung / Datentyp der Java-Variablen (Cast und Promotion)
Schreiben einer Klasse, die in Java bestellt werden kann Ein kleines Standard-Memo
java: Wie schreibe ich eine generische Typliste? [Hinweis]
Die Java 8 Stream-Verarbeitung kann bisher weggelassen werden!
Ich war süchtig nach getXxxx von ResultSet, weil es ein primitiver Typ ist (Java)
[Java] Hinweise zur Typinferenz in Java 10
Java-Variablenbereich (Bereich, in dem Variablen angezeigt werden)
[Java] Dinge, die Sie bei der Ausgabe von FizzBuzz beachten sollten