Вернуться в видеотеку

Мок-интервью Java-разработчика: многопоточность и PostgreSQL

Кандидат решает задачу на deadlock и отвечает на вопросы о синхронизации, Singleton и потоках Java. Затем интервьюер проверяет знания PostgreSQL: индексы, транзакции, MVCC и WAL.

Источник: ШОРТКАТ — менторская программа

Открыть на YouTube

Таймлайн

Коротко о видео

Открытое мок-интервью с Java-разработчиком начинается с обсуждения опыта и live-coding задачи на взаимную блокировку двух локов. Кандидат ищет способ задать единый порядок захвата, разбирает коллизии hashCode, race condition, volatile, AtomicInteger и синхронизацию статических данных. Далее обсуждается double-checked locking Singleton и пулы потоков. Большой блок посвящён PostgreSQL: выбору B-tree и hash-индексов, селективности, EXPLAIN ANALYZE, ACID, аномалиям транзакций, уровням изоляции, MVCC, VACUUM и WAL. В конце затрагиваются SQL-команды и Saga, затем интервьюер даёт кандидату фидбэк и оценивает его как Middle–Middle+ с перспективой роста. После основной части есть реклама и вопросы зрителей.

Затронутые темы

Что взять на заметку

  • Для предотвращения deadlock нужен единый порядок захвата локов, а случай равных hashCode требует отдельного tie-breaker.
  • volatile обеспечивает видимость, но не делает составное изменение атомарным; для этого используют синхронизацию или CAS-операции.
  • Double-checked locking Singleton требует корректной синхронизации и volatile-ссылки на экземпляр.
  • Выбор индекса в PostgreSQL нужно проверять по селективности и плану запроса, а не делать только по названию поля.
  • MVCC даёт снимки данных для конкурентной работы, но требует учитывать накопление мёртвых версий и VACUUM.

Рекомендуем посмотреть

1:36:12
BackendMiddle

Мок-собеседование для Middle Java-разработчика

Теоретическая часть независимого мок-собеседования для Middle Java-разработчика после отдельной live coding-сессии. Кандидат отвечает на вопросы по структурам данных, потокобезопасности, Java I/O, Spring и Docker, а интервьюер уточняет ответы и в финале даёт обратную связь.