Целочисленные константы

Целочисленные значения — вероятно наиболее часто используемый тип в типичной программе. Любое целочисленное значение является числовой константой. Примерами могут служить значения 1, 2, 3 и 42. Все они — десятичные значения, описывающие числа с основанием 10. В числовых константах могут использоваться еще два вида представления — восьмеричное (с основанием 8) и шестнадцатеричное (с основанием 16). В Java восьмеричные значения обозначаются ведущим нулем. Обычные десятичные числа не могут содержать ведущий ноль. Таким образом, внешне вполне допустимое значение 09 приведет к ошибке компиляции, поскольку 9 выходит за пределы диапазона от 0 до 7 допустимых восьмеричных значений. Чаще программисты используют шестнадцатеричное представление чисел, которое явно соответствует словам, размер которых равен 8, 16, 32 и 64 бита, составленным из 8-битных блоков. Шестнадцатеричные значения обозначают ведущим нулем и символом х (Ох или ОХ). Диапазон допустимых шестнадцатеричных цифр — от 0 до 15, поэтому цифры от 10 до 15 заменяют буквами от А до F(wm от а до £).

Целочисленные константы создают значение типа int, которое в Java является 32-битным целочисленным значением. Поскольку Java — строго типизированный язык, может возникать вопрос, каким образом можно присваивать целочисленную константу одному из других целочисленных типов Java, такому как byte или long, не вызывая при этом ошибку несоответствия типа. К счастью, с подобными ситуациями легко справиться. Когда значение константы присваивается переменной типа byte или short, ошибка не генерируется, если значение константы находится в диапазоне допустимых значений целевого типа.

Кроме того, целочисленную константу всегда можно присваивать переменной типа long. Однако чтобы указать константу типа long, придется явно указать компилятору, что значение константы имеет этот тип. Для этого к константе дописывают строчную или прописную букву L. Например, 0x7ffffffffffffffL, или 9223372036854775807L; наибольшая константа типа long. Целочисленное значение можно присваивать типу char, если оно лежит в пределах допустимого диапазона этого типа.