Sobes.tech
Назад к вопросам
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