Java Guru 🤓
13.2K subscribers
900 photos
15 videos
773 links
Канал с вопросами и задачами с собеседований!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrSQZ

Мы на бирже: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Что будет напечатано на экран в результате компиляции и выполнения кода?
Anonymous Quiz
52%
Integer
25%
Object
5%
Ошибка времени выполнения
18%
Ошибка компиляции
👍18🔥5🎉3🌚2🌭2
Расскажите про CopyOnWriteArrayList/CopyOnWriteHashSet

СopyOnWriteArrayList — иммутабельный list, при добавлении/апдейте/удалении элементов из которого пользователь получает новую модифицированную копию данного списка
СopyOnWriteHashSet — иммутабельный set, при добавлении/апдейте/удалении элементов из которого пользователь получает новую модифицированную копию данного set'а
👍162🔥2
Что будет в результате компиляции и выполнения данного кода?
👍14
Что будет в результате компиляции и выполнения данного кода?
Anonymous Quiz
21%
vehiclebike
3%
vehiclecar
12%
carcar
5%
bikebike
26%
Ошибка выполнения
32%
Ошибка компиляции
👍19🍌1011
IdentityHashMap — когда используется?

IdentityHashMap — используется, только если нужно проверять идентичность двух ссылок, а не эквивалентность двух объектов по ним. Например, если нужно отслеживать уже посешенные ноды в графе, или строить карту объекты-прокси. IdentityHashMap представляет из себя не классическую хэштаблицу со связанными списками, это linear probing map
👍18
Что произойдет при попытке скомпилировать и запустить следующий код?
👍17🌚4
👍22🌚5🤬3🍌2
Есть ли способ сделать enum ключом Map?

EnumMap — массив, по размеру соотвествующий кол-ву элементов в enum'е. Индекс элемента массива соотвествуют ordinal'у из enum'а
👍25
Что выведет следующий код?
👍13
Что выведет следующий код?
Anonymous Quiz
17%
1
31%
2
13%
3
40%
4
👍20😐10👌2🏆1
InputStream, OutputStream и их buffered версии

Далее, для краткости InputStream — is, OutputStream — os
is — побайтное чтение из сокета/файла/строки/другого байтового массива
os — побайтная запись в сокет/файл/другой байтовый массив
Buffered-версии нужны для оптимизации чтения/записей через отдельный буффер
👍24
Serializable, serialVersionUID

Классы, чьи объекты подвергаются сериализации/десериализации должны реализовывать marker интерфейс Serializable (и иметь статическое поле serialVersionUID для указании при сериализации, с какой версией класса данный объект был сериализован. Если serialVersionUID из сериализованного представления не совпадает c serialVersionUID класса «на том конце провода» — то кидается exception)

На практике, уже довольно редко используется, т.к тем же Jackson/GSON не обязательно наличие данного интерфейса для сериализации
👍21
Что будет выведено на экран?
👍18
👍24💔5🔥3🤬3
Какой будет результат компиляции и выполнения данного кода?
👍18🥱4
Какой будет результат компиляции и выполнения данного кода?
Anonymous Quiz
6%
10
15%
11
11%
12
36%
17
18%
18
15%
Ошибка времени выполнения
👍21🎉7
try-with-resources. AutoCloseable

try-with-resources — краткая замена стандартному try..catch..finally. Закрывает ресурс после выхода из секции try-with-resources. Ресурс должен имплементить интерфейс AutoCloseable.

«Ресурс» в данном контексте — это класс, представляющий cобой соединение/cокет/файл/поток

try (InputStream is = new FileInputStream("/path/to/file.txt")) {
...
}
👍23
Что будет выведено на экран?
👍17
Что будет выведено на экран?
Anonymous Quiz
31%
1
31%
2
23%
3
15%
Ошибка компиляции
👍27💔7🎉3
Отличие checked-exception/unchecked-exception. Error, Exception, RuntimeException

• Checked exceptions (проверяемые исключения). В JDK представлены классом Exception. Исключения, которые нельзя проигнорировать, их обязательно нужно обрабатывать, либо специфицировать в сигнатуре метода, для обработки выше. Как правило, считаются дурным тоном, т.к код со мн-вом конструкций try..catch плохо читабелен, к тому же добавление новых пробрасываемых исключений в сигнатуре метода может сломать контракт вызова у пользователей данного метода.
• Unchecked exceptions (непроверяемые исключения). В JDK это класс RuntimeException. Можно игнорировать, не требуют обработки через try..catch, или указания в сигнатуре через throws. Минус такого подхода — у вызывающей стороны нет никакого понимания, как обрабатывать ситуацию, когда под капотом «рванет»
• Error — ошибки, кидаемые JVM в результате нехватки памяти (OutOfMemoryError), переполнения стэка (StackOverflowError) и.т.д
👍28🔥1🤔1🤩1