Найти в Дзене
Java

☕ Java-задача: что выведет этот код с `Integer` и

☕ Java-задача: что выведет этот код с `Integer` и `==`? public class Main { public static void main(String[] args) { Integer a = 100; Integer b = 100; Integer x = 1000; Integer y = 1000; System.out.println(a == b); System.out.println(x == y); } } 🔍 Варианты: • a) true, true • b) false, false • c) true, false • d) false, true 💡 Разбор: В Java объект Integer в диапазоне от -128 до 127 кешируется. Это значит: - Integer a = 100; и Integer b = 100; будут ссылаться на один и тот же объект - Integer x = 1000; и Integer y = 1000; — разные объекты, хоть и равны по значению А оператор == проверяет ссылочное равенство, а не значение. ✅ Правильный ответ: c) `true`, `false` 📌 Чтобы сравнивать значения Integer, всегда используй .equals(): System.out.println(x.equals(y)); // true 🧠 Вывод: кеш Integer работает в пределах -128..127. За пределами — создаются новые объекты. Используй equals() вместо ==, если важны значения, а не ссылки.

☕ Java-задача: что выведет этот код с `Integer` и `==`?

public class Main {

public static void main(String[] args) {

Integer a = 100;

Integer b = 100;

Integer x = 1000;

Integer y = 1000;

System.out.println(a == b);

System.out.println(x == y);

}

}

🔍 Варианты:

• a) true, true

• b) false, false

• c) true, false

• d) false, true

💡 Разбор:

В Java объект Integer в диапазоне от -128 до 127 кешируется. Это значит:

- Integer a = 100; и Integer b = 100; будут ссылаться на один и тот же объект

- Integer x = 1000; и Integer y = 1000; — разные объекты, хоть и равны по значению

А оператор == проверяет ссылочное равенство, а не значение.

✅ Правильный ответ: c) `true`, `false`

📌 Чтобы сравнивать значения Integer, всегда используй .equals():

System.out.println(x.equals(y)); // true

🧠 Вывод: кеш Integer работает в пределах -128..127. За пределами — создаются новые объекты. Используй equals() вместо ==, если важны значения, а не ссылки.