×

Співбесіда з Java. 250+ запитань для Junior, Middle, Senior

Ми запитали у СТО та досвідчених фахівців, що проводять інтерв’ю з Java, про те, які теоретичні запитання ставлять і які задачі та завдання пропонують розв’язати кандидатам. Адже, готуючись до технічної співбесіди, важливо мати чіткий план. Сподіваємося, цей список запитань стане своєрідним путівником, що допоможе отримати бажану посаду.

Попередні статті рубрики присвячені Python, .NET та JavaScript.

Junior

Загальні

1.Які знаєте шаблони проєктування? Розкажіть про два шаблони, які використовували в роботі.

Java Core

2.Які є типи даних в Java?
3.Чим відрізняється об’єкт від примітивних типів даних?
4.У чому різниця передачі параметрів за посиланням і за значенням?
5.Що таке JVM, JDK, JRE?
6.Навіщо використовують JVM?
7.Що таке bytecode?
8.Які ознаки JavaBean?
9.Що таке OutOfMemoryError?
10.Що таке стектрейс? Як його отримати?
11.Назвіть всі методи класу object.
12.У чому відмінність між try-with-resources i try-catch-finally при роботі з ресурсами?
13.Що таке конструктори? Які типи знаєте?
14.Що таке побітові операції?
15.Об’єкти яких стандартних класів immutable в Java?
16.Дайте коротку характеристику immutable object. Навіщо вони потрібні?
17.Як створити immutable object?
18.Які переваги immutable object перед звичайними об’єктами?

ООП

19.Що таке ООП? Назвіть принципи з прикладами.
20.У чому переваги ООП перед процедурним програмуванням?
21.У чому полягає головна особливість ООП?
22.Розкажіть, які переваги ми отримуємо із застосуванням ООП?
23.Розкажіть, які недоліки в ООП?
24.Розкажіть про принцип успадкування в ООП? Навіщо він потрібний?
25.Дайте визначення принципу поліморфізм в ООП? Як працює поліморфізм?
26.Що таке статичний і динамічний поліморфізм?
27.Дайте визначення принципу абстракції в ООП.
28.Які елементи мови відповідають за інкапсуляцію?
29.Які елементи мови відповідають за наслідування?
30.Які елементи мови відповідають за поліморфізм?
31.Що таке SOLID? Наведіть приклади.
32.Що таке перевантаження (overloading) методу?
33.Що таке перевизначення (override) методу?
34.Що таке клас, об’єкт, інтерфейс?
35.Що таке клас POJO? Наведіть приклад такого класу.
36.Які елементи може містити клас?
37.Дайте визначення об’єкта?
38.Розкажіть про наслідування в Java. Які особливості використання ключового слова super?
39.Що таке сигнатура методу? Наведіть приклади правильних і неправильних сигнатур.
40.Чи можна в конструкторі застосовувати return?
41.Чи можна в конструкторі виконати виняток (exception)?
42.З яких елементів складається заголовок класу? Напишіть приклад.
43.З яких елементів складається заголовок методу? Напишіть приклад.
44.Створіть в об’єкті-спадкоємці конструктор за замовчуванням, якщо в базовому класі він не визначений (але визначений інший конструктор).
45.Коли застосовується ключове слово this?
46.Що таке ініціалізатор?
47.Для успадкування класу public class Child extends Parent напишіть порядок ініціалізації об’єкта.
48.Які знаєте відносини між класами (об’єктами)?
49.Які асоціативні зв’язки між об’єктами ви знаєте?
50.Що таке модифікатори доступу в Java? Назвіть їх. Навіщо використовуються?
51.Назвіть основну особливість статичних змінних і методів.
52.Які основні обмеження діють на статичні змінні й методи?
53.Що означає ключове слово static? Чи може статичний метод бути перевизначеним або перевантаженим?
54.Чи може бути метод статичним і абстрактним одночасно?
55.Чи можна використовувати статичні методи всередині звичайних? Навпаки? Чому?
56.Що означає ключове слово final?
57.Що таке abstract? Абстрактний клас? Абстрактний метод?
58.Що таке interface? Чи може бути final interface?
59.У чому різниця між абстрактним класом та інтерфейсом в Java?
60.Де можна ініціалізувати статичні поля?
61.Що таке анонімні класи?
62.Що таке примітивні класи?
63.Що таке клас «обгортка» (wrapper)?
64.Що таке Nested class? Коли використовується?
65.Які модифікатори доступу можуть бути у класу?

Бібліотеки та стандарти

67.Що таке Hibernate? У чому різниця між JPA i Hibernate?
68.Що таке каскадність? Як вона використовується в Hibernate?
69.Чи може entity-клас бути абстрактним класом?
70.Що таке entity manager? За що відповідає?
71.Що таке клас Assert? Навіщо і як його використовувати?

String

72.Дайте характеристику String у Java.
73.Які є способи створення об’єкта String? Де він створюється?
74.Як порівняти дві стрічки в Java і/або відсортувати їх?
75.Запропонуйте алгоритм перетворення стрічки на символ. Напишіть відповідний код.
76.Як перетворити стрічку в масив байтів і назад? Напишіть відповідний код.
77.Що таке стрічковий пул і навіщо він потрібен?
78.Які GOF-шаблони застосовуються в стрічковому пулі?
79.Як розділити стрічку на частини? Напишіть відповідний код.
80.Чому масив символів кращий від стрічки для зберігання пароля?
81.Яка різниця між String, StringBuffer та StringBuilder?

Enum

82.Дайте коротку характеристику Enum у Java.
83.Чи може Enum реалізовувати (implement) інтерфейс?
84.Чи може Enum розширити (extends) клас?
85.Чи можна створити Enum без екземплярів об’єктів?
86.Чи можемо ми перевизначити метод toString () для Enum?
87.Що буде, якщо не будемо перевизначати метод toString () для Enum?
88.Чи можемо ми вказати конструктор всередині Enum?
89.У чому різниця між == і equals ()?
90.Що робить метод ordinal () в Enum?
91.Чи можна використовувати Enum з TreeSet або TreeMap в Java?
92.Як пов’язані методи ordinal () і compareTo () в Enum?
93.Напишіть приклад Enum.
94.Чи можна використовувати Enum у switch case?
95.Як отримати всі наявні значення в екземплярі Enum?

Stream API

96.Що таке Stream у Java?
97.Назвіть основні властивості транзакцій.
98.Які є рівні ізоляції транзакцій?
99.Яка різниця між Statement i PreparedStatement?

Collections

100.Розкажіть про ітератори та їх застосування.
101.Яка ієрархія колекцій у Java Collection Framework?
102.Яка внутрішня будова ArrayList?
103.Яка внутрішня будова LinkedList?
104.Яка внутрішня будова HashMap?
105.Чим відрізняється ArrayList від LinkedList?
106.Чим відрізняється ArrayList від HashSet?
107.Навіщо в Java таке різноманіття імплементації динамічного масиву?
108.Навіщо в Java таке різноманіття імплементації key-value storage?
109.Як відсортувати колекцію елементів?

Class Object. Equals and HashCode

110.Дайте коротку характеристику class object у Java.
111.Для чого використовують Equals and HashCode в Java?
112.Розкажіть про контракт між Equals and HashCode в Java?
113.Які умови висуваються щодо перевизначення угоди при перевизначенні Equals?
114.Що буде, якщо не перевизначити Equals and HashCode?
115.Які значення ми отримаємо, якщо у нас не перерозподілені Equals and HashCode?
116.Чому симетричність виконується, тільки якщо x.equals (y) повертає значення true?
117.Що таке колізія в HashCode? Як з нею боротися?
118.Що буде, якщо елемент, який бере участь в контракті із HashCode, змінює своє значення?
119.Напишіть методи Equals and HashCode для класу Student, який складається з полів String name та int age.
120.У чому різниця застосування if (obj instanceof Student) та if (getClass () == obj.getClass ())?
121.Дайте коротку характеристику методу clone ().
122.У чому полягає особливість роботи методу clone () з полями об’єкта типу-посилання?

Exceptions

123.Дайте визначення поняттю exception (виняткова ситуація).
124.Які знаєте особливості використання оператору try...catch?
125.У чому різниця між error і exception?
126.Яка різниця між checked і unchecked, exception, throw, throws.
127.Якою є ієрархія винятків?
128.Що таке checked і unchecked exception?
129.Чи потрібно перевіряти checked exception?
130.Про що говорить і як використовувати ключове слово throws?
131.Які можливі способи обробки винятків ви знаєте?
132.Напишіть приклад перехоплення та обробки винятку в блоці try-catch методу.
133.Напишіть приклад перехоплення та обробки винятку в секції throws-методу і передачі викликаючому методу.
134.Напишіть приклад перехоплення та обробки винятку з використанням власних винятків.
135.Які є правила для перевіряння винятків під час наслідування?
136.Чи могли б ви написати код, якщо блок finally не буде виконано?
137.Напишіть приклад обробки декількох винятків в одному блоці catch
138.Який оператор дозволяє примусово викинути виняток? Напишіть приклад.
139.Чи може метод main викинути throws-виняток? Якщо так — куди передасть?
140.Напишіть приклад try with resources.

Багатопотоковість

141.Які засоби для роботи з багатопотоковістю знаєте?
142.Що таке процес і потік? Чим відрізняється процес від потоку?
143.Розкажіть про синхронізацію між потоками. Для чого використовують методи wait(), notify() - notifyAll(), join()?
144.Як зупинити потік?
145.Як між потоками обмінюватися даними?
146.У чому полягає відмінність класу Thread від інтерфейсу Runnable?
147.Є потоки Т1, Т2 і Т3. Як реалізувати їхнє послідовне виконання?

Практичні завдання

148.Matrix Diagonal Sum (задача з Leetcode).
149.Move Zeroes (задача з Leetcode).
150.Given List<String> names. Видаліть першу літеру з кожного імені та поверніть відсортований список.
151.Перевернути масив.
152.Перевірити, чи є стрічка паліндромом.
153.Написати простий алгоритм сортування (Bubble, Selection або Shuttle). Як його можна покращити?
154.Напишіть алгоритм (послідовність дій) складання літералу типу int і літералу типу byte. Поясніть, що відбувається з пам’яттю.

Middle

Загальні

1.У чому переваги та недоліки ООП, якщо порівнювати з процедурним/функціональним програмуванням?
2.Чим відрізняється агрегація від композиції?
3.Які патерни GoF ви використовували на практиці? Наведіть приклади.
4.Що таке проксі-об’єкт? Наведіть приклади.
5.Які нововведення анонсовано в Java 8?
6.Що таке High Cohesion і Low Coupling? Наведіть приклади.

ООП

7.Яким чином можна реалізувати множинне наслідування в Java?
8.Яка різниця між методами final, finally та finalize()?

Java Core

9.У чому різниця між статичним і динамічним зв’язуванням у Java?
10.Чи можна використовувати private або protected змінні в interface?
11.Що таке Classloader і для чого використовується?
12.Що таке Run-Time Data Areas?
13.Що таке immutable object?
14.В чому особливість класу String?
15.Що таке коваріантність типів?
16.Які є методи у класі Object?
17.Наведіть приклади вдалого та невдалого використання Optional.
18.Чи можна оголошувати main method як final?
19.Чи можна імпортувати ті самі package/class двічі? Які наслідки?
20.Що таке Casting? Коли можемо отримати виняток ClassCastException?
21.Чому сучасні фреймворки використовують здебільшого лише unchecked exceptions?
22.Що таке static import?
23.Який зв’язок між методами hashCode() і equals()?
24.Коли використовують BufferedInputStream та BufferedOutputStream класи?
25.Яка різниця між класами java.util.Collection і java.util.Collections?
26.Яка різниця між Enumeration і Iterator?
27.У чому різниця між ітераторами fail-fast і fail-safe?
28.Навіщо потрібен модифікатор transient?
29.Як впливають на серіалізацію модифікатори static і final?
30.Які особливості використання інтерфейсу Cloneable?
31.Які особливості використання інтерфейсу AutoCloseable?
32.Що таке FunctionInterface і чим він відрізняється від звичайного інтерфейсу?
33.Що таке і навіщо потрібні Atomic types?
34.Що таке Happens-before? Які особливості використання ключового слова volatile?
35.Розкажіть про Heap і Stack пам’ять у Java. У чому різниця між ними? Де зберігаються примітиви?
36.Чим відрізняється stack від heap пам’яті? Коли і яка область пам’яті резервується? Навіщо таке розділення потрібно?
37.Які принцип роботи та області пам’яті Garbage Collector?
38.Як працює Garbage Collector? Розкажіть про Reference counting і Tracing.
39.Розкажіть про механізм роботи autoboxing у Java.
40.Як реалізована серіалізація в Java? Де ми можемо її побачити?
41.Розкажіть, у чому різниця між WeakReference та SoftReference?
42.Що таке generics? Для чого вони потрібні? Яку проблему вирішують?
43.Що таке PECS і як використовується? Наведіть приклади.
44.Навіщо на практиці можуть знадобитися immutable об’єкти?

Бібліотеки та інструменти

45.Чим корисні інструменти Maven, Ant, Gradle?
46.Що таке Unit Tests? Чим клас JUnit.Assert відрізняється від ключового слова assert?
47.Що таке і навіщо потрібен Spring core? Розкрийте поняття Inversion of Control і Dependency Injection.
48.Як «під капотом» працює @Transactional?
49.Як «під капотом» працює Spring?
50.Що таке і навіщо потрібен Hibernate? Розкрийте поняття ORM.
51.Що таке і коли виникає LazyLoadingException?
52.Як «під капотом» працює Hibernate? Як би ви написали власний Hibernate?

Багатопотоковість

53.Які переваги та недоліки використання багатопотоковості?
54.Розкажіть про чотири способи роботи з багатьма потоками та чим відрізняється wait...notify...notifyAll від synchronized? Від Future?
55.Що таке і навіщо потрібен ThreadLocal?
56.У чому різниця між Thread.sleep() і Thread.yield()?
57.Як працює Thread.join()?
58.Що таке deadlock?
59.Що таке race condition?
60.Для чого використовувати volatile, synchronized, transient, native?
61.Розкажіть про пріоритети потоків.
62.Що таке і для чого встановлювати потоки-демони?
63.Чому не бажано використовувати Thread.stop()?
64.Як реалізувати пул потоків?

Collections

65.Чим відрізняється List від Set?
66.У чому різниця між HashSet, LinkedHashSet та TreeSet?
67.Яка внутрішня структура HashMap?
68.Який час пошуку елемента в ArrayList, HashSet?
69.Як реалізувати свій Stack?
70.Як працює метод put в HashMap? Чому нам потрібно вираховувати позицію бакету? У чому переваги такої операції?
71.У чому різниця між HashMap and TreeMap? Коли та де їх потрібно використовувати?
72.Яка внутрішня будова TreeMap? Розказати про RBT.

Stream API

73.Які є методи в інтерфейсі Stream?
74.Чим відрізняється метод map від flatMap?
75.Який функціональний інтерфейс використовує метод filter?

Бази даних

76.У чому різниця між реляційними та нереляційними базами даних?
77.Як зберігаються співвідношення one-to-one, one-to-many та many-to-many у вигляді таблиць?
78.Що таке нормалізація БД? Наведіть приклади з реального проєкту.
79.Які є види індексів у БД?

Практичні завдання

80.Valid parentheses (задача з LeetCode).
81.Reverse Linked List (задача з LeetCode).
82.Дано String s, знайти довжину максимального substring без повтору символів.
83.Визначити, чи є однозв’язний LinkedList паліндромом.

Senior

Загальні

1.Коли краще використовувати наслідування, а не агрегацію?
2.Розкажіть про принципи роботи Kubernetes.

Java Core

3.У чому різниця між Java NIO та Java IO?
4.Чим відрізняється Lambda від анонімного класу?
5.Розкажіть про Java Memory Model.
6.Які є типи пам’яті у JVM?
7.Опишіть життєвий цикл Java-об’єкта. Яким чином об’єкт переходить з однієї області пам’яті Garbage Collector до іншої? Що є тригером такого переходу?
8.Яким чином можна змусити JVM запустити Garbage Collector?
9.Які існують Garbage Collectors у JVM і навіщо їх стільки?
10.Які різновиди Garbage Collector є в HotSpot? Як працюють?
11.Що буде з Garbage Collector, якщо finalize() буде довго виконуватись або в процесі виконання отримаємо виняток?
12.Чим ForkJoinPool відрізняється від ScheduledThreadPoolExecutor та ThreadPoolExcutor?
13.Яка різниця між HashMap, WeakHashMap, Hashtable, IdentityHashMap?
14.Що таке LinkedHashMap?
15.Що таке EnumSet? Для чого використовувати? Як реалізувати?
16.Розкажіть про особливості серіалізації у Java. Навіщо serialVersionUID та InvalidClassException?
17.У чому проблема серіалізації Singleton?
18.Які бувають алгоритми обходу дерев і чому вони різні?
19.Що таке deadlock? Які типи існують? Намалюйте схематично, як може статися.

Бази даних

20.Що таке ACID?
21.Що означає CAP-теорема?
22.Які є рівні ізоляції транзакцій?
23.Чи є сенс відмовлятися від використання ORM?
24.Що таке n+1 проблема?
25.Що таке cartesian product проблема?

Бібліотеки та інструменти

26.Яким чином побудувати monitoring в Java? Розкажіть про особливості використання Java micrometrics або DropWizard, або Prometheus frameworks.
27.Опишіть механізм роботи ORM.
28.Які способи вибірки даних у Hibernate ви знаєте?
29.Які ізоляції транзакцій існують в Hibernate?

Spring

30.Що таке IoC та DI?
31.Який життєвий цикл об’єктів, які створює Spring?
32.Які є види контекстів?
33.Як створити та підняти контекст з метою тестування застосунку?
34.Які можливості Spring надає для комунікації з базою даних?
35.Які ознаки того, що клас — Java Bean? Чим POJO відрізняється від Java Bean?
36.Опишіть механізм ін’єкції залежності в Spring.
37.Чому всі залежності Spring є Java Beans? Чи можливо використовувати Spring для керування залежностями між не Java Beans класами?
38.Чим Spring singleton відрізняється від prototype?
39.Чи є сенс відмовлятися від використання Dependency Injection?

Багатопотоковість

40.Що таке race-condition?
41.Які елементи є в java.util.concurrent пакеті?
42.Що таке optimistic та pessimistic locking?
43.Які особливості багатопотоковості в Java EE та Spring?

Stream API

44.Які основні засади Stream API?

Практичні завдання

45.Реалізувати сервіс, який на вхід приймає url і повертає коротку версію (на зразок bit.ly/86gfr3).

Дякуємо за допомогу в підготовці статті Олександру Редьку, Антону Наумову, Богдану Чупіці, Максиму Ляшенку, Олександру Навці, Сергію Маленку, Андрію Петрику, Сергію Громовому, Денису Душину, Івану Чубі.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось34
До обраногоВ обраному57
LinkedIn

Схожі статті

  • Співбесіда з C++. 400+ запитань для Junior, Middle, SeniorСпівбесіда з C++. 400+ запитань для Junior, Middle, Senior

    Редакція DOU

    Пропонуємо список технічних запитань, які, ймовірно, вам поставлять на співбесідах з C++. Питання надали фахівці, що проводять технічні інтерв’ю з цієї мови. Врахуйте, що є широкий спектр спеціалізацій, а тому обирайте свій напрям і готуйтесь. 116

  • Співбесіда з Python. 100+ запитань для Junior, Middle, SeniorСпівбесіда з Python. 100+ запитань для Junior, Middle, Senior

    Редакція DOU

    Редакція DOU поспілкувалась з розробниками, що проводять технічні співбесіди для різних рівнів Python-спеціалістів, і зібрала приблизний список запитань для кандидатів. У матеріалі є і теоретичні питання, і практичні задачі. 50

  • Співбесіда з PHP. 250+ запитань для Junior, Middle та SeniorСпівбесіда з PHP. 250+ запитань для Junior, Middle та Senior

    Редакція DOU

    Пропонуємо список питань, які ставлять українським розробникам на технічних співбесідах з PHP. Звісно, список не є вичерпним, проте має перевагу: його формували спеціалісти, які проводять інтерв’ю в різних ІТ-компаніях. 51




45 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.
У чому полягає головна особливість ООП?

А і справді, у чому?

Що таке n+1 проблема?

Знал о самой по себе проблеме, сталкивался с ней несколько раз в разных ОРМ много лет назад, но был без понятия что она так называется.
К тому же, я не уверен, что о ней вообще есть смысл спрашивать кого-либо с опытом работы менее пяти лет, потому что в подавляющем большинстве ОРМ она уже давно пофикшена.

Більшість питань — такі, що на них можна знайти відповідь в інтернетах за кілька секунд чи пару хвилин у найгіршому випадку. Комусь дешевше найняти людину як енцеклопедію?

проходил не давно «плюсовый» «тест» оставил скриншот на будущее вот руки дошли разобрать ))

A C++ programmer i developing the utility function below to help solve word jumble puzzle. The tool should generate all permutations of a clue and print out the permutations which occur in a list of dictionary words. Assuming the functions pupulate_Dictionary() and get_Jumble_Input_Word() are complete and working, which of the following ’while’ conditions can substitute **** to generate the correct solution?
void FindWords() {
  std::unordered_set<std::string> wordDictionary;
  populate_Dictionary(wordDictionary); // adds all English words to the dictionary
  std::string clue = get_Jumble_Input_Word();
  std::sort(clue.begin(), clue.end());

  do {
    if (wordDictionary.find(clue) != wordDictionary.end())
      std::cout << clue << std::endl;
  } while (****);
}

(options)

std::next_permutation(clue)
std::next_permutation(clue.begin(), clue.end())
std::binary_search(wordDictionary.begin(), wordDictionary.end(), clue)
std::is_permutation(clue.begin(), clue.end(), wordDictionary.begin());
std::includes(wordDictionary.begin(), wordDictionary.end(), clue.begin(), clue.end())

здесь в опции № 4 точка с запятой в конце стояла в задании я сохранил именно скриншот там ещё какая-то «система защиты от перехода в гугл» в тесте )) но дальше тест я не смотрел

сам тест 45 «вопросов» такого плана рекомендуемое время 54 минут лимит времени 113 минут и самый интересный вопрос в «тестах» такого плана это таки вычитывание таких «вопросов» на предмет что вообще хотят сказать что хотят спросить и что просят сделать на что естественно уходит время плюс «вопросы» конкретно такого плана вообще чисто «справочные» ну да действительно в std:: есть функции для генерации permutation ого да это круто! и что?

другое дело кого именно ищут такими «тестами» лично я из своего опыта знаю только 2 типа «ищущих» это № 1 такие же ж «странные» как и такие «тесты» и это № 2 вообще ни дупля что там за тесты и что там за «плюсы» а им просто зачем-то надо «набрать плюсовиков»

ЗЫ: которые попутно умеют питон и aws и wpf ))

как следствие что № 1 что № 2 на выходе код в котором чтобы просто листать читать что вообще делается нужен справочник и постоянное переключение контекстов между разными нотациями именований как отлично показано в примере «вопроса» хотя сам код делает что-нибудь примитивное как отлично показано в примере «вопроса» при этом сам код очень часто просто «обвязка» boilerplate какой-нибудь справочной функции и поиск что фиксов что доделки фич сводится к расковыриванию справочника на предмет особенностей это самой единственной справочной функции которая с тому же ж чаще всего имеет свойство ещё и «гулять» от стандарта к стандарту ))

За великим рахунком більшість питань тут на знання і замало по навичкам.
Не побачив жодного питання по розподіленим (мікросервісним) проектам, а там патернів і питань ой-ой-ой. Немає питань щодо NoSQL і message brokers.

Дякую за запитання, але таке враження, що цей список складався десь в 2013 році, 95% питань по Java стосуються Java 7 і менших версій.
По Java 8 дуже мало питань, по Java 9+ взагалі немає.

Stream API
97.Назвіть основні властивості транзакцій.

Транзакції не мають відношення до Stream API

93.Напишіть приклад Enum.

Що таке Enum? Є слово enumeration та є слово перелік.

71.Що таке клас Assert? Навіщо і як його використовувати?

Хтось знає відповідь?)

11.Назвіть всі методи класу object.
16.Які є методи у класі Object?

Поперше Object, Java це не C#. По-друге, одне і те же питання для Junior/Middle

41.Чи можна в конструкторі виконати виняток (exception)?

Напевно викинути

43.Які особливості багатопотоковості в Java EE та Spring?

Упевнений, що на таке питання мало хто відповість, так як люди добре знають або Java EE, або Spring

45.Чим корисні інструменти Maven, Ant, Gradle?

Питати про Ant в 2021-му році? Ну хіба що для якогось дрімучого legacy-проекту

46.Що таке Unit Tests? Чим клас JUnit.Assert відрізняється від ключового слова assert?

Тут би не завадило запитати про види автоматизованих тестів, і в чому відмінність юніт від інтеграційних і системних тестів.

18.Чи можна оголошувати main method як final?

Ніколи не питали таке, і напевно правильно робили)

32.Що таке FunctionInterface і чим він відрізняється від звичайного інтерфейсу?

Напевно functional interface.

5.Які нововведення анонсовано в Java 8?

Це в той час, коли вже анонсували Java 16?)

4.Чим відрізняється Lambda від анонімного класу?

Відповідь: AWS Lambda — це serverless обчислення, а анонімний клас це елемент мови Java приймається?)

Це в той час, коли вже анонсували Java 16?)

Там ще й про джавішну серіалізацію купа питань, яка deprecated.

250+ запитань з Java для Junior, Middle та Senior

Я б назвав по-іншому — 250 питань на співбесіді в Java проект, тому що багато питань, які до Java не відносяться.

45.Реалізувати сервіс, який на вхід приймає url і повертає коротку версію (на зразок bit.ly/86gfr3).

При этом url имеет ограничение на время жизни ссылки и реализация должна быть стейтлесс микросервисом без доступов к бд.

Дуже чекав цю статтю, але, як на мене, досить дивний список.

Для джуна: по Enum — 13 питань, а по Stream API — 4. Серйозно?

102.Яка внутрішня будова ArrayList?
103.Яка внутрішня будова LinkedList?
105.Чим відрізняється ArrayList від LinkedList?

Ці 3 питання легко заміняються на одне.

Для мідла:

5.Які нововведення анонсовано в Java 8?

Таке треба питати ще в джуна, імхо.

16.Які є методи у класі Object?

На мідла? Рілі?

І що, жодного питання по Reflection API?
Ніколи в житті не повірю, що це менш важливо, ніж певні питання зі списку.

какой-то список не полный
где вопросы про wait(), notify() and notifyAll()?

особливо якщо зважати, що цим уже мало хто користується, сама мова передбачає інші способи побудови багатопотокових програм.

в смысле «уже мало»? этим что, кто-то когда-то пользовался?

этим что, кто-то когда-то пользовался?

Користувались і користуються, наприклад, в трейдінгових або інших лоу-лейтенсі системах. Інше питання, що це досить специфічні кейси.

я бачив особисто на старих проектах на базі Java 6

Проблема більшості таких списків у помилковому уявленні, що співбесіди на джуніор, мідл та сіньор позиції мають відрізняються складністю та об‘ємом знань.
У цих співбесід є 3 дещо різних мети:
— Джун. Як швидко вчиться? Як швидко стане мідлом? Чи зможе вирости в сіньйора?
— Мідл. Яким об‘ємом знань володіє? Як швидко зможе виконувати задачі?
— Сіньйор. Чи зможе приймати обґрунтовані технічні рішення? Чи має розуміння процесів у проекті?

В такому контексті, не зрозуміло як деякі питання дозволяють досягти цілі задані вище. Наприклад

Що таке Hibernate? У чому різниця між JPA i Hibernate?

Для чого це задавати джуну?

30.Що таке IoC та DI?
38.Чим Spring singleton відрізняється від prototype?

Чому ці запитання лише на рівні сіньйор?

Назвіть основні властивості транзакцій.
20.Що таке ACID?

Перше чомусь на рівні джун, а друге сіньйор.

Що таке Hibernate? У чому різниця між JPA i Hibernate?

Для чого це задавати джуну?

Раніше питали «яка різниця між потоком і процессом». Сенс некоректно заданного питання — одна і та сама, людина в загалі в темі чи «туман 18-тий». Хоча питання про JPA/Hibernate junior-у ставити як на мене сенсу нема взагалі. Їм однаково не можна одразу дати і без наставника кліпати Entity з DAO. Потім ніякий cache і materialized view із індексами не допоможе. Із сотнею many-to-many і ще півсотнею many-to-one намаплених на SQL-ні селекти замість JPAQL + включений за замовченням open session in view і жодного @Transactional

Сподіваємося, цей список запитань стане своєрідним путівником, що допоможе отримати бажану посаду.

В этом и проблема такого рода вопросов: они показывают готовность человека к интервью (или сколько таких он уже посетил) и намного меньше говорят о реальном опыте.

24.Що таке n+1 проблема?

N+1 select наверное, а не просто н+1

Ответ — не знаю потому что не использую Hibernate 😀

43.Що таке PECS і як використовується? Наведіть приклади.

PECS, CHEKS, FECKS — наведіть приклади ))

Stream API
96.Що таке Stream у Java?
97.Назвіть основні властивості транзакцій.
98.Які є рівні ізоляції транзакцій?
99.Яка різниця між Statement i PreparedStatement?

Це точно про стрім АПІ?

44.Які основні засади Stream API?

Питання зовсім незрозуміле.

44.Які основні засади Stream API?

Рівність, любов до ближнього, гармонійне співіснування.

А это действительно важно — спрашивать теорию, которая гуглится за пару минут? (В случае надобности)

Якщо не знати теорію — то як її використовувати і не бігати по граблям?

На мой взгляд, это больше покажет «у кого лучше память» / «кто больше зубрил»
Чем «кто более продуктивный/умный разработчик»
Потому что я например, часть вопросов читал, и не раз, но если не приходится куда-то залазить — например Garbage Collector годами — я забываю эту часть теории. Надо будет — почитаю, вспомню, залезу)

у кого лучше память

вот хороший тест значит, хорошая память — не последнее качество в нашем деле.

Тех спецы клиента — часто спрашивают такие вопросы из рандомно из списка. Особенно когда отбирают джуниоров и мидлов в команду. Правда таких собесов все меньше, крайнее года 4-ре в основном клиент смотрит на всю команду как она устроена слаженна и т.д. Отдельных специалистов клиенты собеседуют все реже. Ну а конечно senior-ов так собеседовать вообще смысла нет, тут нужны открытые вопросы типа «как сделать вот такую задачу».

Як на мене сенсу нема розділяти питання по тайтлам. Я наприклад би спитав Junior-ра про race condition — і не питав про Hibernate зовсім. Тут друге закинули Junior-у — а перше Sinior-у. Всі питання зі знання інформатики і дисципліни програмування взагалі + базової платформи і мови програмування, тайтл залежить зовсім від іншого.

Уровень CTO: как выйти из vi?

По GNU Jokes — www.gnu.msn.by/...​fun/jokes/helloworld.html Позвонить по телефону — лиду разработки.

Заэскалировать тикет 😀 менеджер не должен заниматься этим, для этого есть программисты

Исправьте ссылку в пункте 45, плиз

Переформулюємо запитання, бо bit.ly/86gfr3 — це не справжній лінк. Це приклад того, про що в задачці йдеться: довге посилання перетворити на коротке.

З вчорашньої співбесіди на Entry level software dev у Twitter:
Maximal rectangle — leetcode.com/...​oblems/maximal-rectangle
Kth factor of N — leetcode.com/...​lems/the-kth-factor-of-n

В Україні такого не питають, і слава Богу!

Пару разів, все ж таки, траплялось. Одна якась ігрова контора на лівому (років з 5 тому), ще пару разів, під час пошуку першої і другої роботи, давали прості задачі (із загального пулу в 50 співбесід ±). Частіше ж зустрічав нетяжкі задачі як додаткові запитання, але тільки в якихось стартапах (на кшталт знайти цикл в списку без дод пам’яті, кількість операцій в коді і т.п.). На ентерпрайз співах ні разу такого не питали.

Ще і як питають, принаймі питали раніше питали.

Підписатись на коментарі