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

23 питання, що часто ставляться на співбесідах

Стаття з групи Random UA
Розповім швиденько про себе. Мені 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 - відсортована колекція за алгоритмом червоно-чорне дерево). Знати алгоритми вставки, видалення, пошуку кожної колекції. 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. Сесія. 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.

Насамкінець, раджу читати цей список питань і шукати відповіді самому (качаємо навик "гуглити") і писати код для закріплення. PS: стаття моя перша, так що по-любому будуть недоліки, пишіть, буду дуже радий коментарям. Додаткова література, якщо вам цього ще недостатньо:
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ