Подборка объединяет вопросы, отмеченные на этапах интервью в ВК. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: frontend, browser, mobile.
Нарушение принципа инверсии зависимостей (Dependency Inversion Principle) часто проявляется, когда высокоуровневые модули зависят от низкоуровневых напрямую, вместо абстракций.
Race condition — это ситуация в многопоточных программах, когда несколько потоков одновременно обращаются к общему ресурсу (например, переменной или файлу) и хотя бы один из них изменяет этот ресурс.
Механизмы сборщика мусора (GC) в Java определяют, какие объекты можно освободить из памяти, основываясь на достижимости объектов из корневых ссылок (root references).
Амортизированная сложность — это средняя стоимость операции в последовательности операций, усреднённая по всем операциям, включая редкие дорогие операции.
В данном коде нужно определить переменную start так, чтобы цикл for (int i = start; i <= start + 1; i++) выполнялся бесконечно, при этом менять тело цикла нельзя.
Для решения задачи "два числа в массиве, сумма которых равна target" можно использовать хэш-таблицу (Map) для хранения уже просмотренных чисел и их индексов.
NullPointerException возникает, когда в коде происходит попытка обращения к методу или полю объекта, который равен null. В тестах это часто случается, если не инициализировать необходимые объекты или зависимости.
При многопоточном доступе к сервису через параллельные REST-запросы может возникнуть проблема состояния гонки (race condition), если сервис использует общие изменяемые ресурсы без должной синхронизации.