Если в арифметических операциях 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 не допускается без кастинга, как ожидалось.
Есть ли что-то особенное о числовых литералах?