JavaRush/Java блог/Москва/23 вопроса, часто задаваемых на собеседованиях
Юрий Кузнецов
35 уровень

23 вопроса, часто задаваемых на собеседованиях

Статья из группы Москва
участников
Расскажу быстренько о себе. Мне 25 лет, родился в Крыму, г. Феодосия. Учился в техникуме городском, потом поступил в Харьков, получил диплом бакалавра и в 2014 году вернулся обратно домой. В 2014 поступил на заочное обучение на магистра (все специальности были кое-как связанны с программированием), и в 2015-м году поступил в армию на контрактную службу сроком на 3 года. После двух лет службы в армии я понял, что надо что-то менять в своей жизни... 23 вопроса, часто задаваемых на собеседованиях - 1И вот мне попадается JavaRush в декабре 2017 года, и я начинаю упорно учить Java. Летом я попадаю на курсы Topjava к Григорию, начинаю проходить каждое его занятие, и к середине сентября должны были закончатся трехмесячные курсы. В общем, в начале сентября я переезжаю в Москву с женой для поиска работы Java программистом и на сегодняшний день прошел примерно 10 собеседований. Я вам напишу то, что постоянно спрашивают и вопросы, на которых я сыпался.
  1. Что такое JDK,JRE,JVM и компилятор. This is must have. Если вам зададут на собеседовании этот вопрос и вы не ответите на него, скорее всего, дальше ничего спрашивать не будут. Маленькое видео с youtube

  2. Объектно ориентированное программирование (ООП). Тут главное рассказать, что такое полиморфизм. Могут попросить перевести это слово, потом нужно рассказать его определение соответственно. Можно рассказывать все своими словами. Потом приводите свои примеры.

    Доп. литература : Полиморфизм

    Видео: Введение в ООП

  3. Множественное наследование в Java.В Java запрещено множественное наследование классов, но разрешено множественное наследование интерфейсов. О наследовании

  4. Методы класса Object (желательно каждый метод посмотреть прямо в самом коде и обратить внимание на Equals и hashCode). Я называл так: getClass, finallize (прочитайте о нем, мало ли зададут вопрос, но запомните: как по мне — ЭТО КОСТЫЛЬ), wait (достаточно знать, что там 3 перегруженных метода) notify, notifyAll, equals и hashcode (обязательно!!! знать 4 правила equals и обязательно знать закон между equals и hashCode).

    Object Java

  5. JVM изнутри. Stack и Heap память.

    Память

  6. Что за ключевое слово new и как оно работает. Материал не нашел, но у меня спрашивали о нем, а точнее, когда мы пишем к примеру

    A a = new A()

    что происходит перед равно и после равно?

    Перед равно у нас создается ссылка, а после равно у нас создается с помощью ключевого слова new новый объект, который помещается в память Heap в виде набора байт.(если я не прав потом поправьте пожалуйста меня)

  7. Работа Garbage Collection — не очень часто спрашивали, но когда спрашивали начинали копать, насколько я знаю данную тему. Отличная статья на тут

  8. Порядок инициализации полей классов родителя и потомка

  9. Коллекции: приходилось рассказывать абсолютно всю иерархию и работу каждой коллекции.

    Вопрос, чем отличается List от Set. Самое главное — сказать, что из себя представляет интерфейс List. Если вы ответите, что Set — коллекция с уникальными объектами, этого будет недостаточно.

    HashMap, HashSet — начальный размер; capacity, loadfactory, null допускается или нет? Как вычисляется ячейка для объекта при работе с Hash коллекцией? Отличие HashMap от TreeMap (недостаточно сказать, что TreeMap — отсортированная коллекция, по алгоритму красно-черное дерево). Знать алгоритмы вставки, удаления, поиска o каждой коллекции. Queue, Deque, Stack — редко задавали мне вопросы о них. Нужно знать, где интерфейс, а где классы в коллекциях.

    23 вопроса, часто задаваемых на собеседованиях - 2

    Обратите внимание на то, что у Collections есть родитель Iterable

    ссылка от нашего участника)

  10. Java 8. Абсолютно по максимуму должны выжать из себя все что знаете о "нововведениях", выпущенных 4 года назад: вот вам источник Новое в Java 8

    У меня спрашивали о consumers, function и т.п., потом спрашивали о функциональных интерфейсах, потом спрашивали, как создать свою аннотацию, что означает например @SomeAnnotation (name = .... count =....), а именно, что тут name, count и как они работают при создании своей аннотации.

  11. Generics. Все о дженериках. Спрашивают везде.

    Дженерики

  12. Потоки. Thread, Runnable, чем отличаются, как запустить поток. Все о синхронизации. Мьютексы, мониторы, класс Lock. Deadlock когда возникает, приведи те примеры.

  13. Иерархия исключений checked/unchecked, написать свой класс исключения.

    23 вопроса, часто задаваемых на собеседованиях - 3
  14. Final, finallize(опять), immutable, finally. Когда не отработает блок finally.

  15. Как запретить наследования классов (приватные конструкторы, финал класс...).

  16. IO / NIO потоки.

  17. ПАТТЕРНЫ. Выучите хотя бы 5 штук основных (mvc, factory, decorator, singleton, наблюдатель).

  18. Spring ioc, di, ioc - container. Вот вам ссылка на практическое понимание, мне очень помогло... SPRING. Я тут по спрингу прошел до 16 главы, писав вручную весь код. Советую и вам поступить так же.

  19. Maven -> профили, артефакты, war, jar... виды scope. Какие параметры задавать надо при подключении библиотек.

    MAVEN

  20. Что такое ORM? как работает? (изи ответ).

    Hibernate: как связывается с базой данных, что должно быть обязательно при создании класса Entity. Session. 3 уровня кэширования — знать. Как связать таблицу и класс entity. Связи:

    Многие ко многим, один ко многим и т.п.

    Если у нас есть связь, например, User у которого много Book. Как будет выглядеть поле в классе User и поле в классе Book (это там где указывается аннотация многие ко одному и один ко многим над полями).

    Что такое JPA, каким образом он связан с Hiber. JPAQL.

    Hibernate

  21. Следующий вопрос будет по SQL. Запросы, какие знаешь, что использовал. JOIN — внешний, внутренний, левый, правый.

    sql

    Задача из компании: 2 таблицы дано, департамент и сотрудник. Вот пример.

  22. Горизонтальное масштабирование .

    Маленькое видео на тему вертикального и горизонтального масштабирования
  23. Немного html, css, js.

  24. Git. Работа в консоли. commit, push, в чем отличие fetch от pull.

Напоследок, советую читать этот список вопросов и искать ответы самому (качаем навык "гуглить") и писать код для закрепления. P.S. : статья моя первая, так что по-любому будут недостатки, пишите, буду очень рад комментариям. Дополнительная литература, если вам этого еще не достаточно:
Комментарии (83)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Alina Mamontova
Уровень 35
11 марта, 19:04
Отлично! Спасибо большое.
Julia
Уровень 40
28 февраля 2022, 19:59
Cпасибо! Хороший список
hidden #2641196
Уровень 51
6 мая 2021, 08:05
Большой респект за статью. Структурно, понятно. Ссылки бы в статье только подправить, нерабочие многие.
Applejack Настраиваю телевизор в кругу друзей
26 ноября 2020, 14:54
Автор, много ссылок нерабочих. Если ты еще тут - поправь, пожалуйста :)
Dmitry Falin Enterprise Java Developer в Кометрика
12 июня 2020, 15:48
Начал упорно учиться в декабре 2019 года, так же попал на летнюю стажировку TopJava в Григорию. Щас как раз ищу работу или стажировку. Буду упорно готовится ))
Dmitry Falin Enterprise Java Developer в Кометрика
21 ноября 2020, 16:09
ответ из будущего: на работу устроился и 4 недели уже отработал) рабочая схема)
Dmitry Guryev
Уровень 20
23 апреля 2020, 20:51
😣только начал изучать, и понимаю что так много всего нужно будет узнать😥жутко становиться
Роман Java Developer в Luxoft
14 мая 2020, 19:54
Через год будешь чувствовать иначе !
Chundrik
Уровень 35
16 августа 2020, 11:08
Через год будешь чувствовать, что не знаешь еще больше)
Aleksey System Engineer
6 марта 2020, 05:38
ссылка на ПОЛИМОРФИЗМ кривая и на youtube, где раскрывается тема про Object, тоже самое.
Дмитрий Демент
Уровень 38
19 января 2020, 09:44
Мда вопросы конечно интересные, не все но многие мне задавали. Были и такие как когда грузит JVM статические переменые. Это еще собеседование без Спринга... Докера... Кафки... и т.д
17 ноября 2019, 17:33
Обратите внимание на то, что у Collections есть родитель Iterable Ну вообще-то не родитель, а просто интерфейс.
Vitaly Khan Java Developer в Onollo Master
5 июня 2020, 06:44
почему нельзя его назвать родителем? мы же от него наследуемся. в родной документации он называется суперинтерфейсом. логично было бы перевести интерфейс-родитель на русский. а вот с Collections - явная ошибочка. от Iterable наследуется именно Collection. без 's'.
Яцутко Сергей
Уровень 23
20 августа 2020, 08:06
не наследуемся а реализуем
Vitaly Khan Java Developer в Onollo Master
20 августа 2020, 11:14
Яцутко Сергей смотрите исходники.
public interface Collection<E> extends Iterable<E>
extends переводится на русский как наследуется
Шадияр
Уровень 24
12 октября 2019, 17:47
Мне вот интересно, все это нужно Джуну? Просто нереальный обьем знаний... И за сколько времени реально все это изучить? Можете назвать цифры из реальных опытов. Спасибо заранее.
Олег
Уровень 2
16 января 2020, 03:37
Скорее всего такой Джун через год станет середнячком, все хотят мало платить , но чтобы уже многое умел
Олег
Уровень 2
16 января 2020, 03:38
Но и полных нубов не будут брать, смысл?
Aleksey System Engineer
6 марта 2020, 05:41
какая-то часть конечно нужна, но по опыту прохождения собеседований пришел к выводу, что смотря на кого нарвешься. Зачастую на собесах джунов по верхам пробегаются, дабы понять, что кандидат имеет хотя бы общее представление что и как. И могут попросить чуть подробнее раскрыть какой-нибудь из заданных вопросов.