Вернуться в видеотекуКоротко о видео
Это учебное техническое интервью на позицию Junior Java Developer с кандидатом Алексеем Ботей, который до этого работал инженером-конструктором и около двух месяцев изучал Java. Интервьюер проверяет основы Java, ООП и инкапсуляцию, SOLID, возможности Java 8, коллекции, исключения, базы данных, Spring и многопоточность. В практической части Алексей реализует перемешивание массива, исправляет ошибки компиляции и проходит предложенные тесты, но решение остаётся детерминированным, а не случайным shuffle.
Затронутые темы
Что взять на заметку
- Для Junior Java полезно уметь различать Java как язык, JDK как набор средств разработки и JRE как среду выполнения.
- Нужно объяснять, что примитивные типы не являются объектами, а для работы с ними в коллекциях используются классы-обёртки, например Integer.
- При ответе об инкапсуляции важно связывать private-поля, контролируемые точки доступа и защиту инвариантов объекта, а не только называть геттеры и сеттеры.
- Функциональный интерфейс имеет один абстрактный метод; аннотация @FunctionalInterface необязательна, но позволяет компилятору проверить это ограничение.
- Для удаления известных элементов из середины списка LinkedList удобнее ArrayList, а для быстрого доступа по индексу предпочтителен ArrayList.
- Checked-исключения компилятор требует обработать или пробросить; unchecked-исключения находятся в ветви RuntimeException, но их всё равно стоит учитывать в проектировании.
- Для настоящего перемешивания массива недостаточно развернуть его: на каждой итерации нужен случайный индекс и обмен элементов через временную переменную.