Результат арифметической операции имеет тип int, кроме того случая, когда один из операндов типа long . В этом случае результат будет типа long .
Перед выполнением арифметической операции всегда происходит
повышение
(promotion) типов
byte
,
short
,
char
. Они преобразуются в тип
int
, а может быть, и в тип
long
, если другой операнд типа
long
. Операнд типа
int
повышается до типа
long
, если другой операнд типа
long
. Конечно, числовое значение операнда при этом не меняется.
Это правило приводит иногда к неожиданным результатам. Попытка откомпилировать простую программу, представленную в листинге 1.3, приведет к сообщениям компилятора, показанным на Рисунок 1.3.