Целочисленные значения
Java определяет четыре целочисленных типа: byte, short, int и long. Все эти типы представляют значения со знаком — положительные и отрицательные. Java не поддерживает только положительные целочисленные значения без знака. Многие другие языки программирования поддерживают целочисленные значения как со знаком, так и без знака. Однако разработчики Java посчитали целочисленные значения без знака ненужными. В частности, они решили, что концепция значений без знака использовалась, в основном, для указания поведения старшего бита, который определяет знак целочисленного значения. В Java управление значением старшего бита осуществляется иначе — посредством применения специальной операции "сдвига вправо без учета знака". Тем самым потребность в целочисленном типе без знака была исключена.
Ширина целочисленного типа представляет не занимаемый объем памяти, а скорее поведение, определяемое им для переменных и выражений этого типа. Среда времени выполнения Java может использовать любой размер, до тех пор, пока типы ведут себя объявленным образом. Как показано в табл., ширина и область допустимых значений этих целочисленных типов изменяются в широких пределах.
Таблица 3.1. Ширина и область допустимых значений целочисленных типов
Имя | Ширина | Область допустимых значений |
long | 64 | от -9223372036854775808 до 9223372036854775807 |
int | 32 | от -2147483648 до 2147483647 |
short | 16 | от -32768 до 32767 |
byte | 8 | от-128 до 127 |
Теперь рассмотрим каждый из типов целочисленных значений.