Для Integer оператор == сравнивает ссылки. При Integer i = 5 и Integer g = 5 результат true: boxing константы 5 использует гарантированно общий объект.
Integer i = 5, Integer g = 5. Сравниваем i == g. Что сравнивается и какой результат?
Для Integer оператор == сравнивает ссылки. При Integer i = 5 и Integer g = 5 результат true: boxing константы 5 использует гарантированно общий объект.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для Integer оператор == сравнивает ссылки. При Integer i = 5 и Integer g = 5 результат true: boxing константы 5 использует гарантированно общий объект.
Это не означает, что == над любыми Integer сравнивает числовые значения. Для значений вне гарантированного диапазона кеширования полагаться на идентичность нельзя. Для сравнения значений применяют equals или Objects.equals, если возможен null. Если один операнд имеет примитивный тип int, Java может распаковать Integer и сравнить числа; распаковка null вызовет NullPointerException. Вопрос проверяет различие identity, equality и autoboxing, а не только знание кеша.