Они добавляются как их десятичные числа c ASCII-значение.
Часть кода, которая неявно делает a+b
, добавляет их как целые числа. Итак, если вы запустите следующий код:
class Example {
public static void main(String[] args) {
char ch = '1';
char ch2 = '2';
int num = ch;
int num2 = ch2;
System.out.println("ASCII value of char " + ch + " is: " + num);
System.out.println("ASCII value of char " + ch2 + " is: " + num2);
}
}
Вы увидите, что выход каждого символа равен
ASCII-значение символа 1: 49
ASCII-значение char 2 равно: 50
Поэтому, когда вы делаете это System.out.println(a+b);
, они добавляются как целочисленное значение, которое оказывается 99