Если в арифметических операциях short
автоматически увеличивается до int
, то почему:
short thirty = 10 * 3;
Юридическое присвоение переменной short
thirty
?
В свою очередь, это:
short ten = 10;
short three = 3;
short thirty = ten * three; // DOES NOT COMPILE AS EXPECTED
а также:
int ten = 10;
int three = 3;
short thirty = ten * three; // DOES NOT COMPILE AS EXPECTED
не компилируется, поскольку присвоение значения int
для short
не допускается без кастинга, как ожидалось.
Есть ли что-то особенное о числовых литералах?