JavaRush /Java блог /Random UA /Технічні питання на співбесіді
Roman_kh
33 рівень
Харьков

Технічні питання на співбесіді

Стаття з групи Random UA
Привіт усім, Джаварашівці! Так сталося, що нещодавно я проходив співбесіду і хотів би розповісти, які питання мені ставабо припускаючи, що йде позиція Junior++. Тобто. ще не мідл, але вже й не зелений джун. Технічні питання на співбесіді - 1Так ось, співбесіда проходила за таким планом
  1. JavaCore
  2. ООП
  3. REST
  4. Бази даних.
  5. Інструменти, якими користуєшся.

JavaCore

  • Спочатку мене попросабо намалювати ієрархію інтерфейсів у Колекцій (це було не складно, там їх всього кілька ( Collection, List, Set, Queue, Map).

  • У чому різниця ArrayListі LinkedList(це одне з найбільш заїжджених питань та відповідей в інетах просто темрява).

    Обговорабо швидкість виконання запитів у них та яка різниця між аркушами.

  • Питання про клас Object. Які в нього способи, що вони роблять.

  • Рефлексія. Що робить метод getClass(). Дуже цікаве питання, розберіть його. Особливо про те, як отримати все про клас, навіть там приватні методи або змінні.

  • Запитали за багатопоточність. Слабенько, як я вважаю, так розповісти, як ти розумієш, що таке багатопоточність. Що необхідно, щоб запустити новий потік. Реально, якщо ви 20+ рівень, то ці питання вам здадуться смішними.

  • Що можеш сказати про Stream. Це не на увазі Java 8. Мається на увазі потоки введення і виведення. Як базові інтерфейси, які вони (символьні та байтові). На розуміння, жодної конкретики.

  • Винятки. Тут знову попросабо намалювати ієрархію винятків, які бувають, які з них checked, а які unchecked. Що потрібно робити із Runtimeвинятками. Назвіть найчастіше те, що потрапляє ( NullPointerException).

  • Питання про те, що треба робити з checkedвинятками (пробивати далі чи обробити — зрозуміло і те й інше).

ООП

  • Що таке ООП двома словами?

  • Які ще є парадигми програмування? У чому їхня відмінність від ОВП

  • Які основні принципи ОВП (спадкування, поліморфізм та інкапсуляція)? Розповісти про кожен із них. Поки що все абстрактно, не прив'язуючись до якоїсь мови.

  • Завдання на розуміння проектування систем: є Кінь та Птах. Потрібно одержати Пегаса. принцип "has a" та "is a"

REST

  • Що таке REST | У Вікіпедії про це йдеться дуже круто. Реально статті із Вікіпедії для ознайомлення вистачить.

  • HTTP. Тут також загальні фрази. Його методи, навіщо кожен із них.

  • Коди стану HTTP. На які п'ять частин ділитися, розкажіть про найвідоміші (200,204,404,500,501). Для чого вони. Запитали ще про 401 та 403. Але я не знав їх. Сказали вони важливі.

Бази даних

Тут я розповів, що я знаю MySQL. Розповів про три нормальні форми. Розповів про Join'и, які бувають і намалював перетин областей, у якому використовуються різні джоїни. Розповів про те, як я розумію реляційну базу даних. Не забув ще про MongoDB - це NoSQL база даних. Через деякий час я напишу і про це.

Інші інструменти

Тут ми пройшлися моєю резюме. У мене було написано, що використовую Maven/Gradle для збирання, використовую JIRA для таска, git, Docker, Swagger. Для Continuous Integration - Stash, Bamboo, Puppet. Для тестування JUnit , Mockito, JMeter. Я міг щось забути, тож якщо цікаво — питайте у коментарях постараюсь відповісти. Це була перша частина співбесіди. Тепер чекаю на результати і якщо так, то буде друга частина. Напишу про неї як тільки одразу. Всім кому стаття сподобалася і була корисною - ставте "+". Пишіть у коментарях. також мої інші статті:
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ