[Java] le type char peut être converti en type int

introduction

Lorsque je lisais le livre de problèmes Java SE8 Silver, il disait: "Le type Char peut être implicitement converti en type int ou en type double." J'ai honte de dire que j'utilise Java depuis des années dans mon entreprise, mais je ne savais pas du tout ce fait.

J'ai donc essayé de découvrir la raison pour laquelle le type char peut être converti en type int ou en type double, mais la raison n'a pas été écrite dans la collection de problèmes, alors je l'ai étudiée moi-même. J'ai essayé de résumer les résultats.

Code utilisé pour l'enquête

TypeCast.java


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

		//Transtypage implicite en type int et type double.
		int i = ch;
		double d = ch;
		System.out.println(ch + "Résultat de la conversion en type int: " + i);
		System.out.println(ch + "Résultat de la coulée en double type: " + d);

		//Passez le type char comme argument à une méthode dont l'argument est de type double.
		foo(ch);
	}

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

Résultat de sortie

Résultat de la conversion de 1 en type int: 49
Résultat du casting 1 en double type: 49.0
type double: 49.0

La raison pour laquelle la conversion du type char "1" en type int devient "49"

En regardant la classe de wrapper de type char API de type caractère, "Représentation de caractères Unicode" Est écrit. Donc, si vous regardez "1" dans la table Unicode, la valeur est "U + 0031". Vous pouvez voir qu'il est représenté par.

Les valeurs de la table Unicode sont en hexadécimal, qui est en fait "0x31", donc si vous le changez en décimal, ce sera "49". En d'autres termes, si le type char "1" est implicitement converti en type int, ce "49" est stocké dans la variable de type int.

Résumé

Recommended Posts

[Java] le type char peut être converti en type int
Si les options peuvent être utilisées en raison des différentes versions de Java
Java sera impliqué dès aujourd'hui
Comment utiliser le type enum Java
Les arguments Java à exécuter avec gradle run peuvent être spécifiés avec --args (depuis Gradle 4.9)
[Java] Conversion de type implicite (somme AOJ10 de nombres)
[java] Résumé de la gestion des caractères
[Java] Convertit null du type Object en type String
Raison pour ajouter L au nombre à mettre en type long Java
Conversion de type du type java Big Decimal au type String
Points à prendre en compte lors de l'écriture de Java
[Java] Faites attention au type de clé de la carte
Il ne semble pas y avoir d'autre-si en java
Conversion de type Java (chaîne, entier, date, calendrier, etc.)
Développement de serveur Minecraft BE de PHP à Java
[Java] Une erreur de types incompatibles s'est produite lors de l'affectation d'une chaîne de caractères à une variable de type char.
[Java] Type d'énumération
Java Type facultatif
Vérifiez si une chaîne peut être convertie en int sans utiliser Integer # parseInt
Java double type
[Java] Introduction à Java
Introduction à Java
Déclaration / initialisation de variable Java / type de données (distribution et promotion)
Ecrire une classe qui peut être ordonnée en Java Un petit mémo standard
java: Comment écrire une liste de types génériques [Note]
Le traitement Java 8 Stream peut être omis jusqu'à présent!
J'étais accro à getXxxx de ResultSet car c'est un type primitif (Java)
[Java] Points à noter sur l'inférence de type étendue dans Java 10
Portée de la variable Java (plage où les variables peuvent être vues)
[Java] Éléments à prendre en compte lors de la sortie de FizzBuzz