Технические вопросы

Технические вопросы #


ООП [10.64%]

1. Что такое ООП? [3.19%]

2. Плюсы и минусы ООП [0.35%]

3. Принципы ООП (наследование, инкапсуляция, полиморфизм, абстракция) [9.57%]

4. Класс, объект, интерфейс [0.35%]

5. Ассоциация, агрегация, композиция [1.06%]

6. Статическое и динамическое связывание [1.06%]

7. Является – «is a», имеет – «has a» [0.35%]

SOLID [19.5%]

1. Что такое SOLID (каждая буква)? [18.79%]

2. Какие принципы можешь назвать? [1.06%]

3. Когда мы можем нарушать принципы SOLID? [1.42%]

Java Core [65.96%]

1. Расскажи мне про контракт и свойства Equals & Hashcode [19.86%]

2. Что такое коллизия? [3.9%]

3. Какие типы ссылок существуют в Java? [3.55%]

4. Какой класс называют Immutable? [11.7%]

5. Основная идея языка [0%]

6. За счет чего обеспечена кроссплатформенность? [0.35%]

7. Плюсы и минусы Java? [0%]

8. JVM, JRE, JDK, JIT [2.13%]

9. Что такое байт-код? [0.71%]

10. Что такое сборщик мусора (garbage collector)? [7.8%]

11. Как работает GC? [14.18%]

12. Какие виды GC знаешь? [6.74%]

13. Области памяти Java. Stack и heap. Что это такое? [16.31%]

14. Типы данных в Java [1.06%]

15. Что такое класс-обертка? [2.84%]

16. Автоупаковка и автораспаковка [0.35%]

17. Строки/String в Java? Из чего состоит? Нюансы [6.38%]

18. Что такое пул строк/String pool? [8.51%]

19. Почему не рекомендуется изменять строки в цикле? [0.35%]

20. Разница между String, StringBuffer, StringBuilder [4.61%]

21. Каким образом переменные передаются в методы — по значению или по ссылке? [2.13%]

22. Что такое enum? [1.06%]

23. Что такое конструктор? [1.42%]

24. Какие есть модификаторы доступа? Какие применимы к классам? [3.19%]

25. Что означает static? [4.96%]

26. Можно ли сузить уровень доступа или тип возвращаемого значения при переопределении метода? [0.35%]

27. Что можно изменить в сигнатуре метода при переопределении? Можно ли менять модификаторы (throws и т. п.)? [0.35%]

28. Что означает модификатор final? К чему он может быть применим? [7.45%]

29. Что такое абстрактные классы? [2.48%]

30. Что такое интерфейсы? [2.48%]

31. Отличия интерфейса от абстрактных классов? [14.18%]

32. Каков порядок вызова конструкторов и блоков инициализации с учетом иерархии классов? [1.77%]

33. Зачем нужны и какие бывают блоки инициализации? [0.35%]

34. Для чего в Java используются статические блоки инициализации? [0.35%]

35. Класс Object и его методы? [4.26%]

36. Что такое сериализация и для чего она нужна? [1.06%]

37. Разница между версиями Java [0.35%]

38. Может ли абстрактный класс быть final? [0.35%]

39. Integer pool [1.42%]

40. Какие виды загрузчиков классов ты знаешь? [0.35%]

41. Record-ы с Java 17. Для чего и зачем? [1.42%]

42. Что такое Анонимный класс [1.77%]

43. Расскажи что делает JIT компилятор [2.48%]

44. Расскажи про прогрев JVM [0.35%]

45. break vs continue в цикле [0.71%]

46. Что такое аннотация? Зачем нужна? Как создать свою аннотацию? [3.9%]

47. Переопределение и перегрузка методов [4.96%]

48. ClassLoader в Java [3.55%]

49. В чем разница сравнений по equals и "=="? [2.84%]

Коллекции [56.74%]

1. Расскажите как выглядит иерархия коллекций [22.7%]

2. Что такое ArrayList? [5.32%]

3. ArrayList. Какая размерность массива по умолчанию? [0.35%]

4. ArrayList. Что происходит под капотом при добавлении/удалении элемента в начало/середину/конец списка? [5.32%]

5. ArrayList - сложность операций [4.26%]

6. Что такое LinkedList? [2.48%]

7. LinkedList. Что происходит под капотом при добавлении/удалении элемента в начало/середину/конец списка? [3.55%]

8. LinkedList - сложность операций [3.55%]

9. ArrayList vs LinkedList [18.44%]

10. Какая скорость вставки в ArrayList и LinkedList [3.55%]

11. Что такое TreeMap? [3.19%]

12. TreeMap - сложность операций [1.77%]

13. Внутреннее устройство TreeMap [3.19%]

14. Что такое HashMap? [9.57%]

15. Внутреннее устройство HashMap [17.73%]

16. Что такое бакет? Внутреннее устройство бакета [6.03%]

17. HashMap - сложность операций [11.7%]

18. Процесс добавления объекта в HashMap [12.06%]

19. Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()? [13.48%]

20. Ключи в HashMap [7.09%]

21. Могу положить в HashMap или TreeMap элемент с ключом null? [2.48%]

22. Что такое HashSet? [4.26%]

23. Как HashSet связан с HashMap? [0.71%]

24. Внутреннее устройство HashSet [2.48%]

25. HashSet - сложность операций [1.42%]

26. Процесс добавления объекта в HashSet? [1.06%]

27. Будет ли работать HashSet, если все добавляемые элементы будут иметь одинаковый hashCode()? [0.35%]

28. Что такое TreeSet? Внутреннее устройство [3.55%]

29. Что такое Queue? [0.71%]

30. Queue - сложность операций [0%]

31. Назовите главные реализации Queue [0.35%]

32. Что такое Deque? [0.35%]

33. Назовите главные реализации Deque [0%]

34. Deque - сложность операций [0%]

35. Какая коллекция реализует дисциплину обслуживания LIFO? FIFO? [1.42%]

36. HashMap vs TreeMap [3.9%]

37. Как с собой связаны Iterable и foreach? [1.77%]

38. Реализации интерфейса Map. Почему интерфейс Map выделен отдельно? [4.26%]

39. Какую коллекцию использовать для уникальных отсортированных значений? [0.35%]

40. HashTable - что это такое? [0.71%]

41. Arrays.asList() and List.of() [1.06%]

42. LinkedHashMap [2.84%]

43. Структуры данных. Какая сложность в дереве? [1.77%]

Исключения [30.14%]

1. Расскажите про иерархию исключений [13.12%]

2. Что такое Error и Exception? [5.32%]

3. Расскажите про обрабатываемые и необрабатываемые исключения [13.12%]

4. О чем говорит ключевое слово throws? [1.42%]

5. Как создать собственное («пользовательское») исключение? [3.9%]

6. Расскажите про механизм обработки исключений в java (Try-catch-finally) [7.45%]

7. Возможно ли использование блока try-finally (без catch)? [0.35%]

8. Может ли один блок catch отлавливать сразу несколько исключений? [0.71%]

9. Всегда ли выполняется блок finally? Существуют ли ситуации, когда блок finally не будет выполнен? [3.9%]

10. В каком порядке следует обрабатывать исключения в catch блоках? [1.77%]

11. Что такое механизм try-with-resources? [4.96%]

12. Ошибка OutOfMemoryError. Поймать утечку памяти и пофиксить [8.16%]

13. @SneakyThrows в Lombok [0.71%]

14. StackOverflowError vs OutOfMemoryError [1.77%]

Дженерики [15.25%]

1. Что такое дженерики? Для чего нужны? [7.45%]

2. Что такое сырые типы? [0%]

3. Что такое вайлдкард [0.71%]

4. Расскажите про принцип PECS [4.26%]

5. Расскажите про класс Optional [4.61%]

6. Что такое стирание типов (Type Erasure) в Java Generics [3.55%]

Функциональные интерфейсы [16.31%]

1. Что такое функциональный интерфейс? [9.93%]

2. Для чего нужна аннотация @FunctionalInterface [1.06%]

3. Какие встроенные функциональные интерфейсы вы знаете? [4.61%]

4. Что такое ссылка на метод? [0.71%]

5. Что такое лямбда выражение? Чем его можно заменить? [8.16%]

6. Что делает Интерфейс Function? [0.35%]

Stream API [27.66%]

1. Что такое Stream API и для чего нужны Stream? [11.35%]

2. Почему Stream называют ленивым? [2.48%]

3. Какие существуют способы создания Stream? [0.35%]

4. Типы методов в Stream API [10.99%]

5. Что такое промежуточные методы? Какие промежуточные методы в стримах вы знаете? [4.26%]

6. Что такое терминальные методы? Какие терминальные методы в стримах вы знаете? [6.38%]

7. Методы в Stream API [0.71%]

8. Чем отличаются методы map() и flatMap()? [9.22%]

9. Расскажите про класс Collectors и его методы [0.35%]

10. Что такое IntStream и DoubleStream? [0.35%]

11. В чём разница между parallel и parallelStream? [0.35%]

12. Для чего нужны операции Consumer, Function, Supplier? [1.06%]

13. Что такое параллельные стримы? [4.26%]

14. Разница между findAny() и findFirst() [1.77%]

Многопоточность [47.52%]

1. Что такое многопоточность? [1.42%]

2. Чем процесс отличается от потока? [3.19%]

3. Чем Thread отличается от Runnable? Когда использовать Thread, а когда Runnable? [0.35%]

4. Что такое монитор? Как реализован в Java? [1.77%]

5. Что такое синхронизация? Какие способы синхронизации существуют в Java? [15.6%]

6. Что такое FutureTask? [2.48%]

7. Что такое CompletableFuture? [5.67%]

8. Что такое ExecutorService? [7.09%]

9. Как работать с коллекциями в многопоточном программировании? [4.96%]

10. SynchronizedCollections. Что это? За счет чего достигается потокобезопасность? [0%]

11. Что такое Deadlock [8.51%]

12. Что такое Livelock [2.84%]

13. Что такое Race condition [6.74%]

14. Atomic vs Volatile. Что это и когда использовать? [4.61%]

15. Зачем нужны atomic [12.77%]

16. Зачем нужны volatile [15.6%]

17. Какие бывают состояния у потока? [1.06%]

18. Collections.synchronizedMap vs ConcurrentHashMap [2.84%]

19. Какими способами можем запустить несколько потоков в Java приложении? Как запустить поток в Java? [7.8%]

20. Что за интерфейсы Runnable и Callable? В чем между ними отличия? [3.55%]

21. Расскажи про пакет concurrent [1.42%]

22. Способы решения задач для многопоточного доступа [0.35%]

23. Чем конкурентность отличается от параллелизма? [0.35%]

24. Что такое CAS операции? (Compare And Swap) [3.55%]

25. Асинхронность vs многопоточность [2.84%]

26. Зачем нужны пулы потоков? [0.35%]

27. Что значит потокобезопасность? [1.06%]

28. Области памяти в многопоточности? [2.13%]

29. Executors.newCachedThreadPool() [2.13%]

30. Что такое happens-before? [3.9%]

31. ForkJoinPool vs FixedThreadPool [0.35%]

Базы данных [17.73%]

1. Виды БД и для чего их лучше использовать? [2.48%]

2. Масштабирование. Как решить нехватку места на сервере? [2.48%]

3. Репликация базы данных. Что это такое? [4.26%]

4. Что такое шардирование? [7.45%]

5. NoSQL vs SQL [4.96%]

6. Партиционирование [5.67%]

SQL [72.34%]

1. Что такое транзакции? [9.93%]

2. Расскажите про ACID [12.77%]

3. Проблемы параллельных транзакций [9.22%]

4. Уровни изолированности (read uncommitted, read committed, repeatable read, serializable) [25.18%]

5. Виды JOIN. Как работает каждый JOIN? [13.12%]

6. Индексы в SQL. Что это? [20.92%]

7. Почему когда много индексов, это плохо? [7.45%]

8. Плюсы и минусы индексов [9.22%]

9. Какие виды индексов знаешь? [14.54%]

10. Как правильно выбрать индекс? [4.26%]

11. Нормализация и денормализация. Перечислите формы [8.16%]

12. Что такое внешний ключ? [0.35%]

13. Чем WHERE отличается от HAVING? Можем ли мы их использовать в одном запросе? [8.16%]

14. Чем отличается MySQL от PostgreSQL? [0%]

15. Оптимизация запросов. Какие существуют инструменты? [22.7%]

16. EXPLAIN vs EXPLAIN ANALYZE [10.64%]

17. Инструмент для сбора статистики в PostgreSQL [0.35%]

18. Что такое селективность? [2.84%]

19. Ключевое слово LATERAL [0.35%]

20. Оконные функции. PARTITION BY [2.48%]

21. cube, rollup, groupBy [0.71%]

22. Хранимые процедуры [2.13%]

23. Как работает Serializable? [0.71%]

24. View, materialized view. Разница между обычным и материализованным представлением? [4.61%]

25. C помощью SQL блокировка строки? - SELECT FOR UPDATE [6.38%]

26. UNION vs UNION ALL [1.77%]

27. Расскажи про ключевое слово DISTINCT? [1.06%]

28. Что такое табличные выражения? [0.35%]

29. Для чего используется Database Connection Pool? (Hikari) Исчерпание connection pool [2.13%]

30. Блокировки и локи. Оптимистичная и Пессимистичная [17.38%]

31. БД. Constraint. Какие существуют? [1.77%]

32. Primary Key [2.48%]

33. Foreign Key [3.55%]

34. DELETE vs TRUNCATE [1.06%]

NoSQL [4.26%]

1. NoSQL типы БД [1.42%]

2. Для чего используется Redis? [3.19%]

3. Что такое Кэш? [0.71%]

Миграции [4.61%]

1. Liquibase. Что это и для чего? [3.19%]

2. Какие записи создаёт liquibase во время миграции? [0.71%]

3. Зачем нужны инструменты миграции? [1.42%]

ORM [42.91%]

1. Что такое Hibernate, JPA, JDBC, ORM? [5.67%]

2. Плюсы и минусы ORM [3.19%]

3. Как создать Entity и что это такое? [2.48%]

4. Может ли Entity наследоваться от не-Entity классов? [0%]

5. Может ли Entity наследоваться от других Entity классов? [0%]

6. Почему мы не можем использовать final классы в качестве Entity? [0.35%]

7. Что такое Proxy и для чего используется? [9.57%]

8. FetchType [2.48%]

9. Жизненный цикл сущности [4.96%]

10. Кэширование [6.38%]

11. HQL и JPQL [0.71%]

12. EntityManager + EntityManagerFactory / SessionFactory + session [1.77%]

13. Проблема N + 1. Способы решения проблемы [20.92%]

14. Что такое Entity Graph? [3.9%]

15. Statement, Prepared statement, Callable statement [2.13%]

16. Связи между таблицами в ORM [3.19%]

17. LazyInitializationException [4.61%]

18. Что такое SQL-инъекция? [1.42%]

19. Проблемы JOIN FETCH [0.71%]

20. Логи в Hibernate [0.35%]

21. Аннотация @Query, что это такое? [1.77%]

22. Как Hibernate генерирует SQL запросы? [0.35%]

23. Hibernate. Что хранится в Persistence Context? Сколько времени объект хранится в Persistence Context? [2.48%]

24. Hibernate и Lombok [1.06%]

25. Как JPA делает запросы? [0.71%]

26. Стратегии наследования в Hibernate [2.84%]

Spring [79.43%]

1. Зачем мы используем Spring? Почему его так любят? [10.99%]

2. Inversion of Control [10.64%]

3. Dependency Injection [12.06%]

4. Какие способы внедрения зависимостей знаешь? [14.54%]

5. Почему лучше использовать конструктор? [12.06%]

6. @Autowired [4.26%]

7. @Qualifier vs @Primary [12.41%]

8. Что такое Bean? [10.28%]

9. Скоуп бинов. Web скоуп [25.89%]

10. Как обеспечить, чтобы при внедрении бина со скоупом prototype в singleton-бин каждый вызов получал новый экземпляр? [6.74%]

11. Жизненный цикл Bean. Вопросы связанные с классами, входящими в жизненный цикл бина [20.57%]

12. @ComponentScan [3.19%]

13. @Conditional в Spring [3.19%]

14. @Service, @Repository, @Component [14.89%]

15. @Controller и @RestController [8.16%]

16. @ResponseBody vs ResponseEntity [0.35%]

17. Spring MVC. Что это? Какие проблемы решает? [1.06%]

18. Парадигма AOP [7.09%]

19. Циклическая зависимость [7.8%]

20. Spring Boot [7.09%]

21. Spring Boot vs Spring [10.99%]

22. Spring JDBC [0.71%]

23. Spring Data JPA [4.26%]

24. Блокировка по умолчанию в Spring [0.35%]

25. @Transactional. Как работает? [27.3%]

26. Какие есть атрибуты у @Transactional? [4.61%]

27. Атрибут propagation у @Transactional [8.87%]

28. @Transaction Что будет если вызвать метод из метода в одном классе при различных сценариях [14.89%]

29. Как гарантировать корректное обновление и сохранение изменений в сущностях, полученных в методе с @Transactional [1.42%]

30. @Transactional и Исключения [3.19%]

31. @Async [2.13%]

32. Starter в Spring. Плюсы и минусы [5.67%]

33. Spring Criteria API [3.19%]

34. @Scheduled [3.55%]

35. Понятие Controller и Servlet в Java. Это одно и то же? Если разное, в чем отличия? [1.06%]

36. Что такое объект Filter? В какой момент вызывается? [0.71%]

37. Что такое ApplicationContext? Как работает под капотом [4.96%]

38. Зачем нужны аннотации @RequestParam и @PathVariable? [0.71%]

39. @ConfigurationProperties? ConfigurationProperties vs Value [1.06%]

40. @Value. Что это? [1.06%]

41. Как работает DispatcherServlet? [2.13%]

42. Варианты обработки Exceptions в Spring [1.06%]

43. @Configuration. Является Configuration компонентом? Какую доп логику Configuration реализует? [1.42%]

44. @PostConstruct [2.84%]

45. Dependency management в Spring boot [0.35%]

46. Spring Security, как хранить пароль пользователя? [0.71%]

47. Spring Profiles как с ними работать? [1.77%]

48. Виды proxy в Spring [6.03%]

49. @Lookup [2.48%]

50. Как работает BeanPostProcessor. Почему есть before и after initialization [2.48%]

51. @Lazy [3.9%]

52. @ControllerAdvice [3.9%]

53. Как устроен Spring Security [2.84%]

Паттерны проектирования [20.57%]

1. GOF паттерны [12.06%]

2. Что такое паттерн? [0%]

3. Плюсы и минусы использования паттернов [0%]

4. Какие существуют группы паттернов? [3.19%]

5. Какие паттерны в какую группу входят? [0.35%]

6. Adapter vs Decorator [0%]

7. Паттерн MVC [1.06%]

8. Паттерн Command [0.71%]

9. Паттерн Chain of responsibility [0.71%]

10. Как реализуется паттер Abstract Factory? [1.77%]

11. Какие паттерны проектирования используются в Spring [2.84%]

12. Плюсы и минусы паттерна Singleton? [4.96%]

13. Паттерн Builder [2.13%]

WEB [22.7%]

1. REST [7.09%]

2. RESTful и RESTless [2.13%]

3. REST vs SOAP [1.06%]

4. В каких ситуациях допустимо использование RESTless [0%]

5. REST vs RPC. Как выбрать что лучше подходит? [3.19%]

6. Назовите 6 принципов REST API [1.06%]

7. Идемпотентный метод [3.19%]

8. Основные HTTP методы [7.45%]

9. Статусы ответов [2.48%]

10. GET vs POST [4.96%]

11. Разница HTTP и HTTPs [2.13%]

12. Из чего состоит HTTP запрос [2.13%]

13. Какие методы авторизации существуют для HTTP протокола? [0.35%]

14. Из чего состоит JSON Web Token? [1.06%]

15. Какие протоколы уровня приложений? [0.35%]

16. Что такое HTTP? [1.06%]

17. За что отвечают Cookie/куки? [0.71%]

18. Отличия POST, PUT, PATCH [3.55%]

Микросервисы [24.47%]

1. Монолит vs Микросервис [4.96%]

2. Плюсы и минусы микросервисов [4.61%]

3. Паттерн Saga в микросервисной архитектуре [6.38%]

4. CAP теорема [2.13%]

5. Паттерн Circuit Breaker [3.55%]

6. Паттерн API Gateway [2.13%]

7. HTTP vs Kafka. Какой способ общения между микросервисами лучше и почему? [1.42%]

8. Шаблоны проектирования для микросервисов (паттерны) [6.03%]

9. Что такое Transactional Outbox [6.38%]

Брокеры сообщений [45.74%]

1. Плюсы и минусы брокеров сообщений [2.48%]

2. Разница между Kafka и RabbitMQ [8.51%]

3. Что такое топик в Kafka? [6.38%]

4. Что такое Producer и что такое Consumer? [1.42%]

5. Что такое partition в Kafka? [9.93%]

6. Распределение сообщений. Как сообщения распределяются по партициям? [11.7%]

7. Гарантии доставки в Kafka [13.83%]

8. Какие существуют паттерны работы с очередями? [0.35%]

9. Основные компоненты Kafka? [12.41%]

10. Kafka. Consumer Group [9.22%]

11. Из чего состоит Kafka кластер? [0.71%]

12. Брокеры сообщений vs Rest [4.61%]

13. Pull и push модели, в чём разница? [0.71%]

14. Как гарантировать в Kafka идемпотентность, чтобы не было задвоений и потерь сообщений? [4.26%]

15. Как в Kafka гарантируется последовательность сообщений? [3.19%]

16. Что сделать, чтобы сообщения попадали в одну партицию? [0.35%]

17. Как работает Round Robin? [0.35%]

18. Acknowledgment в Kafka [0.35%]

19. Смещение (offset) в Kafka [2.84%]

20. Повторное чтение данных из Kafka [0.71%]

21. DLQ topic? [1.42%]

Тестирование [10.64%]

1. На чем пишутся тесты? [1.06%]

2. Mock vs spy [4.26%]

3. Параметризованные тесты [1.06%]

4. Unit тесты. Что это и зачем? [0.71%]

5. Unit тесты vs интеграционные тесты [1.42%]

6. Mock. Как работает? [4.26%]

7. Spy. Как работает? [0.71%]

8. Каким образом проверяются результаты тестов? [0.35%]

9. Основные аннотации в тестировании [0.71%]

Деплой [9.93%]

1. CI/CD [2.84%]

2. Как работает Docker. Из чего состоит докер образ? [3.19%]

3. Что такое слой? Как мы можем создать новый слой? [0.35%]

4. Docker compose [2.84%]

5. ARG, ENV. В чем отличия? [0.35%]

6. Docker cmd vs entrypoint [0.71%]

7. Отличия контейнеризации от виртулизации [4.61%]

8. Поддержка сервиса в продакшене, мониторинг его работы. Общие подходы? [0.35%]

Другое [20.57%]

1. Инструменты для отладки приложения, течет память, все замирает - Visual VM, JMap, профилировщики [2.13%]

2. Определение сложности алгоритма [2.84%]

3. Для чего нужно O большое в алгоритмах? (Что такое сложность в алгоритме) [4.61%]

4. Какой подход к неймингу методов позволяет ясно и однозначно отражать их функциональность, например, для методов, которые выполняют поиск с сортировкой, очистку кэша или расчёт с сохранением данных и возвратом статуса? [0.71%]

5. Как выявлять и устранять узкие места производительности в REST-сервисах и микросервисных архитектурах, когда рост нагрузки (например, увеличение трафика или обращений к БД) приводит к значительно более долгой обработке запросов, чем ожидается, и какие стратегии оптимизации (в том числе архитектурные изменения и масштабирование) могут помочь достичь требуемых временных рамок отклика? [1.42%]

6. Обычное программирование vs реактивщина [2.48%]

7. Для чего нужен Reflection? [3.9%]

8. Что такое идемпотентность? [4.61%]