Недавно я заметил идиосинкразию Java относительно основных арифметических операций в Java. Со следующим кодом
byte a = 3;
byte b = 4;
byte c = a * b;
Я получаю ошибку компиляции типа "несоответствие"...
Являются ли основные арифметические операции в Java (+
, -
, *
, /
) выполняются только для примитивных типов данных int
и более высокого порядка (long
, double
и т.д.), тогда как арифметические операции на byte
и short
сначала переносятся на int
, а затем вычисляются?