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를 출력
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를 출력하고 컴파일 오류가 발생하지 않음
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를 출력
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!