Java задачи с собеседований
6.27K subscribers
597 photos
6 videos
19 files
247 links
Задачи, тесты и теоретические вопросы по JAVA.

Репозиторий: https://github.com/proghub-official/java-interview
Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
加入频道
Что напечатает этот код?
Anonymous Quiz
18%
null
9%
10
8%
0
66%
IndexOutOfBoundsException
Теоретически, какое максимальное количество потоков может одновременно, не блокируя друг друга, совершить запись в ConcurrentHashMap?
Anonymous Quiz
25%
Один
13%
По количеству записей (entry)
54%
По количеству корзин (bucket)
8%
По количеству деревьев (tree)
Является ли данный класс потокобезопасным?
Anonymous Quiz
61%
Нет
39%
Да
Как можно в коде вычислить квадратный корень из числа без использования функции извлечения корня? Для упрощения задачи будем считать, что корень – это всегда целое число. Какое самое оптимальное решение?
Anonymous Quiz
10%
Полный перебор всех вариантов
77%
Двоичный поиск
14%
Нельзя вычислить корень без использования функции извлечения корня
Если в Java в ArrayList и в LinkedList начать в бесконечном цикле добавлять по одному элементу, то в какой из коллекций окажется больше элементов на момент возникновения OutOfMemoryError?
Anonymous Quiz
37%
ArrayList
32%
LinkedList
19%
Скорее всего в LinkedList, но иногда может и в ArrayList
12%
Скорее всего в ArrayList, но иногда может и в LinkedList
Пояснение предыдущему посту👆

В большинстве случаев в LinkedList окажется больше элементов, т.к. память выделяется постепенно под каждый новый элемент. А в ArrayList память выделяется пачками: в случае достижения лимита текущего массива создаётся новый массив большего размера и память под него выделяется сразу.

Но может возникнуть такая ситуация, когда в ArrayList поместится больше элементов, если новый массив окажется как раз «впритык» по объёму доступной оперативной памяти. В этом случае LinkedList закончится быстрее, т.к. на каждый отдельный элемент расходуется больше памяти, чем в ArrayList.