Java Core middle

Чем опасны типы-обёртки (Integer, Boolean)?

Ответ

NPE при unboxing null: Integer i = null; int x = i; → NPE. Лишняя память: Integer = 16 байт vs int = 4 байта. Медленнее: автобоксинг создаёт объекты. IntegerCache: valueOf(127) == valueOf(127) → true, но valueOf(128) == valueOf(128) → false, поэтому сравнивать нужно через equals.

Разбор: Реальные опасности обёрток: NPE при unboxing null, лишние память и аллокации при автобоксинге, а также сравнение через == вместо equals (из-за IntegerCache valueOf(127)==valueOf(127), но valueOf(128) уже даёт false). Ловушки: обёртки неизменяемы, == для new Integer(...) сравнивает ссылки и даёт false, а unboxing null бросает NPE, а не подставляет 0; кэш работает лишь в диапазоне -128..127.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться