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

Техническое интервью Java Developer - Михаил Кончиц

Учебное интервью по Java для Junior-разработчика с вопросами, уточнениями и практическими задачами. Основные темы — Java Core, коллекции, Spring и веб-слой.

Источник: Максим Добрынин | ex. Jetbulb

Открыть на YouTube

Таймлайн

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

Запись учебного технического интервью на позицию Junior Java Developer с Михаилом Кончицем. Участники последовательно разбирают ООП, Object, equals и clone, строки, исключения, Collections Framework, Spring IoC/DI, Spring MVC и HTTP. В нескольких блоках кандидат решает практические задачи: реализует глубокое клонирование, создаёт и копирует коллекции, сортирует числа через Comparator.

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

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

  • Для clone() нужно понимать различие shallow copy и deep copy: при глубоком копировании для ссылочных полей создаются независимые вложенные объекты, иначе оригинал и копия разделяют одну ссылку.
  • Метод Object.clone() требует Cloneable, изначально protected и по умолчанию выполняет поверхностное копирование; в практической задаче это проверяют изменением вложенного Address после клонирования.
  • equals() по умолчанию сравнивает ссылки, поэтому для сравнения состояния объектов его переопределяют и соблюдают контракт: рефлексивность, симметричность, транзитивность, согласованность и false для null.
  • Строки String неизменяемы; обсуждаются string pool, лишние промежуточные строки при конкатенации и использование StringBuilder при накоплении строк, особенно в циклах.
  • Ведущий подчёркивает, что checked и unchecked исключения технически различаются обязательностью обработки; также он высказывает мнение, что checked exceptions могут раскрывать детали реализации и часто менее предпочтительны.
  • Нужно уметь объяснить, что ArrayList основан на массиве и при росте capacity создаёт новый массив с копированием элементов, а LinkedList — связный список; for-each доступен объектам, реализующим Iterable.
  • Для Spring важно знать назначение IoC-контейнера, способы DI через поле, setter и конструктор, scope бинов, отличие Controller от RestController, а также Content-Type и Accept в HTTP-заголовках.

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