Пользователь Юрий Кузнецов
Юрий Кузнецов
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. : статья моя первая, так что по-любому будут недостатки, пишите, буду очень рад комментариям. Дополнительная литература, если вам этого еще не достаточно:
Комментарии (80)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Applejack 41 уровень, Минск
26 ноября 2020
Автор, много ссылок нерабочих. Если ты еще тут - поправь, пожалуйста :)
Dmitry Falin 35 уровень, Санкт-Петербург
12 июня 2020
Начал упорно учиться в декабре 2019 года, так же попал на летнюю стажировку TopJava в Григорию. Щас как раз ищу работу или стажировку. Буду упорно готовится ))
Dmitry Guryev 19 уровень, Нижний Новгород
23 апреля 2020
😣только начал изучать, и понимаю что так много всего нужно будет узнать😥жутко становиться
Aleksey 17 уровень, Москва
6 марта 2020
ссылка на ПОЛИМОРФИЗМ кривая и на youtube, где раскрывается тема про Object, тоже самое.
Дмитрий Демент 38 уровень
19 января 2020
Мда вопросы конечно интересные, не все но многие мне задавали. Были и такие как когда грузит JVM статические переменые. Это еще собеседование без Спринга... Докера... Кафки... и т.д
17 ноября 2019
Обратите внимание на то, что у Collections есть родитель Iterable Ну вообще-то не родитель, а просто интерфейс.
Шадияр 24 уровень, Шымкент
12 октября 2019
Мне вот интересно, все это нужно Джуну? Просто нереальный обьем знаний... И за сколько времени реально все это изучить? Можете назвать цифры из реальных опытов. Спасибо заранее.
Павел 23 уровень
6 октября 2019
Отлично расписано. Спасибо!
Алексей 18 уровень, Москва
2 апреля 2019
Большое спасибо)
Dante 22 уровень, Одесса
28 февраля 2019
Пропал Юрий( Юрий, отпишитесь как вы там!