Вопрос проверяет знание оптимизаций JVM и понимание причин неожиданного поведения при сравнении объектов-обёрток.
Короткий ответ
Кеширование Integer — это механизм повторного использования объектов для часто используемых чисел.
JVM хранит заранее созданные объекты Integer в ограниченном диапазоне значений.
По умолчанию кешируются значения от -128 до 127.
Это влияет на сравнение через ==.
Метод equals() всегда работает корректно.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.