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

Репозиторий: https://github.com/proghub-official/java-interview
Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
加入频道
Каким образом можно создать поток?
- Создать потомка класса Thread и переопределить его метод run();
- Создать объект класса Thread, передав ему в конструкторе экземпляр класса, реализующего интерфейс Runnable. Этот интерфейс содержит метод run(), который будет выполняться в новом потоке. Поток закончит выполнение, когда завершится его метод run().
- Вызвать метод submit() у экземпляра класса, реализующего интерфейс ExecutorService, передав ему в качестве параметра экземпляр класса, реализующего интерфейс Runnable или Callable (содержит метод call(), в котором описывается логика выполнения).

Чем различаются Thread и Runnable?
Thread - это класс, некоторая надстройка над физическим потоком.
Runnable - это интерфейс, представляющий абстракцию над выполняемой задачей.
Помимо того, что Runnable помогает разрешить проблему множественного наследования, несомненный плюс от его использования состоит в том, что он позволяет логически отделить логику выполнения задачи от непосредственного управления потоком.

В чём заключается разница между методами start() и run()?
Несмотря на то, что start() вызывает метод run() внутри себя, это не то же самое, что просто вызов run(). Если run() вызывается как обычный метод, то он вызывается в том же потоке и никакой новый поток не запускается, как это происходит в случае, когда вы вызываете метод start().
Какие из следующих методов выбрасывает исключение InterruptedException?
Anonymous Quiz
19%
yield
52%
wait
19%
notify
10%
Не знаю
[SQL] Пусть дана таблица Income, два столбца которой имеют значения:
Каким будет результат выполнения следующего кода?
Каким будет результат выполнения следующего кода?
Anonymous Quiz
15%
false
18%
true
21%
Result: false
43%
Result: true
2%
Не знаю
Можно ли при объявлении класса использовать модификаторы abstract и final одновременно?
Anonymous Quiz
25%
Да
72%
Нет
3%
Не знаю
Чем отличается ArrayList от LinkedList? В каких случаях лучше использовать первый, а в каких второй?

#вопрос_на_собеседовании
ArrayList:
- Доступ к произвольному элементу по индексу за константное время O(1);
- Доступ к элементам по значению за линейное время O(N);
- Вставка в конец в среднем производится за константное время O(1);
- Удаление произвольного элемента из списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку влево (реальный размер массива (capacity) не изменяется);
- Вставка элемента в произвольное место списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку вправо;
- Минимум накладных расходов при хранении.

LinkedList:
- На получение элемента по индексу или значению потребуется линейное время O(N);
- На добавление и удаление в начало или конец списка потребуется константное O(1);
- Вставка или удаление в/из произвольного места за константное O(N);
- Требует больше памяти для хранения такого же количества элементов, потому что кроме самого элемента хранятся ещё указатели на следующий и предыдущий элементы списка.

В целом, LinkedList в абсолютных величинах проигрывает ArrayList и по потребляемой памяти, и по скорости выполнения операций. LinkedList предпочтительно применять, когда нужны частые операции вставки/удаления или в случаях, когда необходимо гарантированное время добавления элемента в список.
Является ли импортирование пакета java.awt, записанное в программе следующим образом:
Является ли импортирование пакета java.awt, записанное в программе следующим образом:
Anonymous Quiz
66%
Да
28%
Нет
6%
Не знаю
🔥 Собрали новый большой тест на знание Java!

Тест для проверки ваших знаний, их актуальности и глубины понимания языка. Включает в себя 30 вопросов разной сложности - от простых до требующих анализа кода.
🖊 30 вопросов
30 минут на прохождение

Линк: t.me/QuizBot?start=eKmlLvl4

📩 По любым вопросам и предложениям пишите: @igorhub
Java задачи с собеседований pinned «🔥 Собрали новый большой тест на знание Java! Тест для проверки ваших знаний, их актуальности и глубины понимания языка. Включает в себя 30 вопросов разной сложности - от простых до требующих анализа кода. 🖊 30 вопросов 30 минут на прохождение Линк: t.…»
📩 По любым вопросам и предложениям пишите в личку автору теста: @igorhub
Каким будет результат компиляции и запуска данного кода:
Что выведет на экран следующий код?