Вернуться в видеотекуJAVA СОБЕСЕДОВАНИЕ | BACKEND-mock интервью
Разбор мок-собеседования Junior Java-разработчика с ответами кандидата, комментариями интервьюера и livecoding-задачей. Видео служит примером тем и уровня детализации, ожидаемых на техническом интервью.
- Направление
- Backend
- Формат
- Мок-собеседование
- Грейд
- Junior
- Длительность
- 1 ч 27 мин
Коротко о видео
Это мок-собеседование Junior Java-разработчика: кандидат Максим отвечает на вопросы, а ведущий Павел после ряда ответов разбирает более точные формулировки и недостающие детали. Обсуждаются Java Core, обработка исключений, многопоточность, CompletableFuture, паттерн Proxy, HTTP, Spring и транзакции в SQL-базах данных. В середине видео кандидат пытается решить задачу на удаление дубликатов из отсортированного массива, после чего ведущий показывает сначала вариант с дополнительным массивом, затем in-place решение.
Затронутые темы
Что взять на заметку
- Для immutable-объекта недостаточно сделать класс final и убрать сеттеры: изменяемые внутренние поля и возвращаемые коллекции нужно защищать копированием.
- При многократной конкатенации строк используйте StringBuilder в однопоточном коде; StringBuffer синхронизирован и нужен, когда требуется потокобезопасность.
- Ресурсы вроде файлов и соединений с БД стоит закрывать через try-with-resources: ресурс должен реализовывать AutoCloseable, а незакрытые соединения могут исчерпать лимит пула.
- volatile даёт видимость изменений между потоками, но операция i++ не становится атомарной; для атомарного инкремента нужны AtomicInteger или другие потокобезопасные механизмы.
- CompletableFuture удобен для неблокирующих цепочек преобразований и обработки результата или ошибки; у Future вызов get() блокирует текущий поток.
- Для предотвращения deadlock ведущий предлагает единый порядок захвата блокировок и ограничение времени удержания ресурса.
- В задаче на удаление дубликатов из отсортированного массива можно вести индекс позиции для следующего уникального элемента и переписывать уникальные значения в начало исходного массива.