Ответ
Тип Integer (обёртка для примитива int) в Java имеет диапазон от -2³¹ до 2³¹ - 1.
Конкретные значения:
- Минимальное:
Integer.MIN_VALUE = -2 147 483 648 - Максимальное:
Integer.MAX_VALUE = 2 147 483 647
Причина: Примитив int занимает 32 бита (4 байта) в памяти, используя один бит для знака (дополнительный код).
Пример и важные следствия:
System.out.println(Integer.MIN_VALUE); // -2147483648
System.out.println(Integer.MAX_VALUE); // 2147483647
// Переполнение (integer overflow) приводит к циклическому заворачиванию (wrap-around)
int max = Integer.MAX_VALUE;
int overflow = max + 1; // Результат: -2147483648 (Integer.MIN_VALUE)
// Для арифметики без ограничений используйте long (64-bit) или BigInteger
long safeResult = (long) max + 1; // 2147483648
BigInteger hugeNumber = BigInteger.valueOf(max).add(BigInteger.ONE);
Практическое правило: При работе с потенциально большими числами (например, суммами, идентификаторами) используйте long.