Назад к вопросам
Senior
10
Integer i = 300, j = 300; System.out.println(i == j);
Компании, где спрашивали
Velenes.Tech
Ответ от нейросети
sobes.tech AI
В данном коде происходит сравнение двух объектов типа Integer с помощью оператора ==:
Integer i = 300, j = 300;
System.out.println(i == j); // false
Почему false? В Java объекты Integer кэшируются для значений от -128 до 127. Для значений вне этого диапазона создаются новые объекты. Поэтому i и j с значением 300 — это разные объекты, и == сравнивает ссылки, а не значения.
Если бы значения были в диапазоне кэша, например 100, то i == j было бы true.
Для сравнения значений объектов Integer нужно использовать метод .equals():
System.out.println(i.equals(j)); // true