Maison > Java > javaDidacticiel > Pourquoi l'ajout de deux caractères Java donne-t-il un entier et non un caractère ?

Pourquoi l'ajout de deux caractères Java donne-t-il un entier et non un caractère ?

DDD
Libérer: 2024-12-08 04:14:10
original
378 Les gens l'ont consulté

Why Does Adding Two Java Chars Result in an Integer, Not a Char?

Conversion de type numérique dans l'ajout de caractères Java

Lors de l'ajout de deux caractères Java, tels que « a » « b », une conversion de type numérique se produit. Contrairement à la plupart des autres langages de programmation, cet ajout n'entraîne pas de sortie de caractère.

Type de données du résultat

Selon la spécification du langage Java, le résultat de l'ajout de caractères, de courts métrages , ou bytes est un int. Ce comportement est attribué aux règles de promotion numérique binaire de Java, qui stipulent que les deux opérandes sont convertis en type int lors de l'exécution d'opérations arithmétiques binaires.

Exemple

Considérez ce qui suit exemple :

char x = 'a' + 'b'; // 결과는 int
System.out.println(x); // 195를 출력
Copier après la connexion

Exceptions

Cependant, ces règles comportent une exception pour les opérateurs d'affectation composés comme =. Par exemple :

char x = 1, y = 2;
x += y; // 합법적이며 결과는 char
System.out.println(x); // 195를 출력하고 컴파일 오류가 발생하지 않음
Copier après la connexion

Dans ce cas, le résultat de l'ajout (un entier) est explicitement reconverti en char à l'aide d'un opérateur d'affectation composé.

Détermination du type de résultat

Pour déterminer le type du résultat en général, on peut le convertir en objet et interroger son class :

System.out.println(((Object)('a' + 'b')).getClass()); // class java.lang.Integer를 출력
Copier après la connexion

Considérations sur les performances

Notez que le bytecode Java n'a pas d'instructions spécifiques pour l'arithmétique avec des types de données plus petits. Au lieu de cela, il utilise des instructions basées sur l'int (par exemple, iadd) et remet manuellement à zéro les octets supérieurs si nécessaire.

Concaténation de chaînes

Si l'intention est de concaténer des caractères comme une chaîne, sans les interpréter numériquement, utilisez une chaîne vide dans l'expression, car l'ajout d'un caractère et d'une chaîne donne une chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal