Каковы последствия объявления переменной count как int в Java?

«Каковы последствия объявления переменной count как int в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Объявление переменной как int в Java означает:

  • Размер и диапазон: 32-битное целое число со знаком. Диапазон от -2,147,483,648 до 2,147,483,647.
  • Память: Занимает 4 байта.
  • Литералы по умолчанию: Целочисленные литералы (например, 42) по умолчанию имеют тип int.

Основные последствия и best practices:

  1. Риск переполнения: Арифметические операции могут выйти за пределы диапазона, вызвав тихое (silent) переполнение без исключения.
    int max = Integer.MAX_VALUE; // 2147483647
    int overflow = max + 1; // Станет -2147483648 (Integer.MIN_VALUE)
  2. Выбор типа: Для больших чисел, счетчиков в циклах с большим количеством итераций или идентификаторов используйте long.
  3. Автоупаковка: В коллекциях (List<Integer>) происходит автоупаковка в Integer, что влияет на производительность в критичных местах.

Когда использовать int: Для большинства счетчиков, индексов и целочисленных вычислений, где диапазон заведомо ограничен.