Литералы
Известно, что в java литералы целых чисел имеют по умолчанию тип int, а литералы чисел с плавающей точкой – double. Но, помимо различий в типе, есть ещё некоторое различие в поведении.
Не удивительно, что эта строчка при компиляции вызывает ошибку из-за несовместимости типов float и double:
float f = 25.2; // слева float, справа double
И, казалось бы, следующий пример тоже не должен был бы компилироваться, ведь int не преобразуется в byte неявно:
byte b = 127; // слева byte, справа int
Однако последний пример компилируется! В этом случае, если значение справа представимо типом byte (от -128 до 127), компилятор сам выполнит преобразование. Аналогично, без явного преобразования, целочисленные литералы можно присваивать типам short и char.
Комментариев нет:
Отправить комментарий