Для чего добавили Autoboxing в Java

«Для чего добавили Autoboxing в Java» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Autoboxing автоматически преобразует примитивные типы в их объектные обертки (intInteger, doubleDouble и т.д.) и обратно. Это упрощает работу с коллекциями (которые хранят только объекты) и API, требующими объекты.

Пример:

List<Integer> list = new ArrayList<>();
list.add(42); // Автоупаковка int → Integer
int value = list.get(0); // Распаковка Integer → int

Нюансы:

  • Может вызывать незаметные накладные расходы (создание объектов).
  • null при распаковке вызывает NullPointerException.
  • Сравнение (==) может давать ложные результаты из-за кэширования в небольших диапазонах (например, Integer от -128 до 127).