Что выведет код Junior Основы: типы, обёртки, static спрашивают часто обновлено
Что выведет: кеш Integer и equals
Вопрос
Что выведет программа (Java 21)? Каждый вывод println с новой строки.
public class Main {
public static void main(String[] args) {
Integer a = 100, b = 100;
Integer c = 1000, d = 1000;
Long e = 100L;
System.out.println(a == b);
System.out.println(c == d);
System.out.println(c.equals(d));
System.out.println(a.equals(100L));
System.out.println(e.equals(100L));
}
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: true, false, true, false, true. a == b: 100 в кеше Integer.valueOf, один объект, true. c == d: 1000 вне кеша, разные объекты, false. c.equals(d) сравнивает значения: true. a.equals(100L): аргумент упакован в Long, а Integer.equals требует Integer, поэтому false.…
Что выведет
true
false
true
false
true
Разбор
a == b: 100 в кеше Integer.valueOf, один объект, true. c == d: 1000 вне кеша, разные объекты, false. c.equals(d) сравнивает значения: true. a.equals(100L): аргумент упакован в Long, а Integer.equals требует Integer, поэтому false. e.equals(100L): Long с Long, true.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Основы: типы, обёртки, static»
- char плюс int
- Изменили константу в библиотеке
- Деньги в double
- Ключ Long и get(int)
- final ссылка на список
- Автоупаковка
- Порядок инициализации
- Примитивы Java