Что будет в результате компиляции и выполнения данного кода?
Anonymous Quiz
19%
Ошибка компиляции
29%
2
6%
Ошибка выполнения
46%
1
Что произойдет при попытке скомпилировать и запустить следующий код:
Anonymous Quiz
17%
код не скомпилируется, поскольку метод main объявлен неправильно
38%
будет напечатано: 10,15
5%
будет напечатано: 0,0
32%
код не скомпилируется, поскольку класс Box не имеет конструктора Box(int b,int w)
8%
ничего из выше перечисленного
Что будет выведено после выполнения следующего кода:
Anonymous Quiz
44%
Testing parent... child::test
13%
Testing child... parent::test
18%
Testing parent... parent::test
25%
Testing child... child::test
Что будет в результате компиляции и выполнения данного кода?
Anonymous Quiz
55%
Код скомпилируется
23%
Код не скомпилируется
10%
Выдаст ошибку выполнения
12%
Узнать ответ
Какие из приведенных утверждений верны?
Anonymous Quiz
9%
Класс-наследники Set-интерфейса подходят для приложений с доступом к коллекциям на основе индексов
78%
Для реализации функционала, основанного на очередях, больше подходит LinkedList, чем Map
7%
Коллекции Queues концептуально больше похожи на Sets, чем на Lists или Maps
6%
Концептуально механизм java.util.Properties больше похож на List, чем на Map
Какие исключения будут брошены методом main?
Anonymous Quiz
45%
IndexOutOfBoundsException
20%
Код не скомпилируется
28%
NullPointerException
7%
ClassCastException
Чем отличаются операторы & и &&, | и ||?
Anonymous Quiz
10%
Операторов & и | в Java нет
39%
& и | - унарные операторы, && и || - бинарные
51%
& и | всегда проверяют оба операнда на истинность, && и || - не всегда
Пояснение к предыдущему вопросу👆
👨🏻💻 Операторы & и |применяются как побитовое «И» и «ИЛИ» соответственно, если операнды целочисленные, и как логические «И» и «ИЛИ», если операнды булевы. При этом & и |, в случае логического выражения, проверяют оба своих операнда на истинность.
Их сокращенные версии, &&и ||, оптимизированы – «И» не проверяет на истинность второй операнд, если первый «ЛОЖЬ», «ИЛИ» не проверяет второй операнд, если первый «ИСТИНА».
Это делает их полезными для оптимизации кода и позволяет избежать NullPointerExceptionв тех случаях, когда второй операнд-выражение может его инициировать (в первом операнде размещают проверку на null-значение).
Java задачи с собеседований
👨🏻💻 Операторы & и |применяются как побитовое «И» и «ИЛИ» соответственно, если операнды целочисленные, и как логические «И» и «ИЛИ», если операнды булевы. При этом & и |, в случае логического выражения, проверяют оба своих операнда на истинность.
Их сокращенные версии, &&и ||, оптимизированы – «И» не проверяет на истинность второй операнд, если первый «ЛОЖЬ», «ИЛИ» не проверяет второй операнд, если первый «ИСТИНА».
Это делает их полезными для оптимизации кода и позволяет избежать NullPointerExceptionв тех случаях, когда второй операнд-выражение может его инициировать (в первом операнде размещают проверку на null-значение).
Java задачи с собеседований
Зачем нужны два survivor space?
Anonymous Quiz
27%
Чтобы постоянно дефрагментировать эту область памяти
26%
Такое разделение нужно только GC типа G1 для разбиения области памяти на фрагменты
17%
Чтобы обеспечить многопоточность самого приложения
30%
Чтобы GC работал с каждым в параллельных потоках, увеличивая скорость очистки
Пояснение к предыдущему вопросу👆
👨🏻💻В survivor space находятся объекты, которые пережили больше одного прохода GC, но меньше 15 (по умолчанию это порог, после которого объект отправляется к долгожителям в Old Generation). После проходов GC в этой области возникает проблема фрагментации – постоянно возникают «дырки» от удаленных объектов и нужно «уплотнять» их расположение в памяти для большей производительности.
Для этого данная область делится на две и каждый проход сборщика все элементы из одной копируются в другую, фрагментируясь, а вторая остается пустой. На следующем проходе они вновь меняются местами, фрагментируя расположение объектов.
Java задачи с собеседований
👨🏻💻В survivor space находятся объекты, которые пережили больше одного прохода GC, но меньше 15 (по умолчанию это порог, после которого объект отправляется к долгожителям в Old Generation). После проходов GC в этой области возникает проблема фрагментации – постоянно возникают «дырки» от удаленных объектов и нужно «уплотнять» их расположение в памяти для большей производительности.
Для этого данная область делится на две и каждый проход сборщика все элементы из одной копируются в другую, фрагментируясь, а вторая остается пустой. На следующем проходе они вновь меняются местами, фрагментируя расположение объектов.
Java задачи с собеседований