Каким будет вывод этого кода?
Anonymous Quiz
9%
3 -3 false
28%
3 3 true
33%
-3 3 false
14%
Ошибка компиляции
16%
Узнать ответ
🤔12👍2💩2
👍6👎3
Каким будет вывод этого кода?
Anonymous Quiz
17%
1 2
51%
1 2 3
20%
1 2 3 4
7%
1 2 3 4 5
5%
Узнать ответ
👍3
🕕 Задача по Java: Что будет выведено?
Варианты:
A) true, true
B) true, false
C) false, true
D) false, false
✅ Правильный ответ:B
Объяснение:
Java кэширует объекты Integer в диапазоне -128 ... 127. — то же значение и тот же объект.
— разные объекты вне кэша. Используй .equals() для сравнения!
public class Main {
public static void main(String[] args) {
Integer a = 127;
Integer b = 127;
Integer c = 128;
Integer d = 128;
System.out.println(a == b); // ?
System.out.println(c == d); // ?
}
}
Варианты:
A) true, true
B) true, false
C) false, true
D) false, false
✅ Правильный ответ:
Объяснение:
Java кэширует объекты Integer в диапазоне -128 ... 127.
a == bc == d👍12🤯11❤6🔥2
Какое из следующих утверждений правильно описывает поведение этой программы?
Anonymous Quiz
8%
5
25%
11
49%
12
12%
Ошибка времени компиляции
5%
Узнать ответ
❤6
Что напечатает код?
Anonymous Quiz
10%
true, true, true
33%
false, true, true
14%
false, false, true
29%
false, false, false
6%
другой вариант
7%
узнать результаты
🤔14❤4✍3👎2
Что будет при вызове /api/customers/{5}, если записи c id 5 нет
Anonymous Quiz
24%
HTTP 404 (Not Found) с телом ответа null
53%
HTTP 200 (OK) с телом ответа null
12%
NullPointerException
6%
HTTP 500 (Internal Server Error)
7%
HTTP 400 (Bad Request)
❤6
Какое из следующих утверждений правильно описывает поведение этой программы?
Anonymous Quiz
39%
false
38%
true
13%
ClassCastException во время запуска
4%
Ошибка времени компиляции
6%
Узнать ответ
🤔8
Java: Короткая задача
Задача:
Что выведет программа и почему?
Разбор:
Блок finally всегда выполняется, даже если есть return в try.
Когда JVM встречает return 1;, она сохраняет значение для возврата.
Затем выполняет finally.
В finally есть новый return 2; — он перезаписывает сохранённый результат.
👉 Поэтому вернётся 2, а не 1.
Полезно знать:
Такое поведение часто ломает логику при работе с ресурсами - finally может изменить или "затереть" возвращаемое значение.
Лучше не использовать return внутри finally вообще.
Задача:
Что выведет программа и почему?
public class Tricky {
public static void main(String[] args) {
System.out.println(getValue());
}
static int getValue() {
try {
return 1;
} finally {
return 2;
}
}
}
Разбор:
Блок finally всегда выполняется, даже если есть return в try.
Когда JVM встречает return 1;, она сохраняет значение для возврата.
Затем выполняет finally.
В finally есть новый return 2; — он перезаписывает сохранённый результат.
👉 Поэтому вернётся 2, а не 1.
Полезно знать:
Такое поведение часто ломает логику при работе с ресурсами - finally может изменить или "затереть" возвращаемое значение.
Лучше не использовать return внутри finally вообще.
👍13🤔5
# Хитрая задачка на Java: не то, чем кажется
Внимательно изучите следующий код:
Вопрос:
Что напечатает эта программа? Обоснуйте каждый вывод, опираясь на спецификацию Java и особенности работы с пулом строк, кэшированием обёрток и автоупаковкой.
Внимательно изучите следующий код:
public class WhatTheJava {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
String s4 = new String("hello").intern();
System.out.println(s1 == s2); // (1)
System.out.println(s1 == s3); // (2)
System.out.println(s1 == s4); // (3)
System.out.println(s3 == s4); // (4)
Integer i1 = 1000;
Integer i2 = 1000;
Integer i3 = 100;
Integer i4 = 100;
System.out.println(i1 == i2); // (5)
System.out.println(i3 == i4); // (6)
Boolean b1 = true;
Boolean b2 = true;
Boolean b3 = Boolean.valueOf("true");
Boolean b4 = new Boolean(true);
System.out.println(b1 == b2); // (7)
System.out.println(b1 == b3); // (8)
System.out.println(b1 == b4); // (9)
}
}
Вопрос:
Что напечатает эта программа? Обоснуйте каждый вывод, опираясь на спецификацию Java и особенности работы с пулом строк, кэшированием обёрток и автоупаковкой.
❤3