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

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


ООП [10%] #

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

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

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

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

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

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

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

SOLID [18%] #

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

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

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

Java Core [68%] #

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

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

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

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

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

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

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

8. JVM, JRE, JDK, JIT [3%] #

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

39. Integer pool [0%] #

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

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

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

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

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

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

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

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

48. ClassLoader в Java [4%] #

49. В чем разница сравнений по equals и “==”? [2%] #

Коллекции [57%] #

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

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

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

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

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

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

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

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

9. ArrayList vs LinkedList [17%] #

10. Что такое TreeMap? [2%] #

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

12. Внутреннее устройство TreeMap [3%] #

13. Что такое HashMap? [10%] #

14. Внутреннее устройство HashMap [16%] #

15. Что такое бакет? Внутреннее устройство бакета [7%] #

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

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

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

19. Ключи в HashMap [6%] #

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

21. Что такое HashSet? [4%] #

22. Как HashSet связан с HashMap? [0%] #

23. Внутреннее устройство HashSet [2%] #

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

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

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

27. Что такое Queue? [1%] #

28. Что такое Queue? [1%] #

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

30. Назовите главные реализации Queue [0%] #

31. Что такое Dequeue? [0%] #

32. Назовите главные реализации Dequeue [0%] #

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

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

35. HashMap vs TreeMap [3%] #

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

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

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

39. HashTable - что это такое? [1%] #

40. Arrays.asList() and List.of() [1%] #

41. LinkedHashMap [3%] #

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13. @SneakyThrows в Lombok [1%] #

14. StackOverflowError vs OutOfMemoryError [2%] #

Дженерики [19%] #

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

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

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

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

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

6. Как JVM работает с Generics [4%] #

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

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

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

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

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

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

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

Stream API [30%] #

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

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

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

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

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

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

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

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

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

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

11. Разница между parallel и parallelStream? [0%] #

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

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

14. Какая разница между findAny() и findFirst() [2%] #

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

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

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

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

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

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

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

7. Что такое ExecutorService? [6%] #

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

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

10. Что такое Deadlock [10%] #

11. Что такое Livelock [3%] #

12. Что такое Race condition [7%] #

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

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

15. Зачем нужны volatile [18%] #

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

17. Collections.synchronizedMap vs ConcurrentHashMap [3%] #

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

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

20. Расскажи про пакет concurrent [1%] #

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

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

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

24. Асинхронность vs многопоточность [3%] #

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

26. Что значит потокобезопасность? [0%] #

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

28. Executors.newCachedThreadPool() [2%] #

29. Что такое happens-before? [5%] #

30. ForkJoinPool vs FixedThreadPool [0%] #

Базы данных [16%] #

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

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

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

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

5. NoSQL vs SQL [4%] #

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

SQL [73%] #

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

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

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

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

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

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

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

8. Какие виды индексов знаешь? [14%] #

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

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

11. Что такое внешний ключ? [0%] #

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

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

14. Оптимизация запросов. Какие инструменты? [22%] #

15. EXPLAIN vs EXPLAIN ANALYZE [10%] #

16. PostgreSQL. Какой инструмент для сбора статистики? PGSTAT [0%] #

17. Что такое селективность? [4%] #

18. Ключевое слово LATERAL [0%] #

19. Оконные функции. PARTITION BY [2%] #

20. cube, rollup, groupBy [1%] #

21. Хранимые процедуры [2%] #

22. Как работает Serializable? [1%] #

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

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

25. UNION vs UNION ALL [2%] #

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

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

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

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

30. БД. Constraint. Какие существуют? [2%] #

31. Primary Key [3%] #

32. Foreign Key [4%] #

33. DELETE vs TRUNCATE [1%] #

NoSQL [4%] #

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

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

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

Миграции [4%] #

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

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

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

ORM [46%] #

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

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

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

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

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

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

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

8. FetchType [3%] #

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

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

11. HQL и JPQL [1%] #

12. EntityManager + EntityManagerFactory / SessionFactory + session [2%] #

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

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

15. Statement, Prepared statement, Callable statement [2%] #

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

17. LazyInitializationException [5%] #

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

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

20. Логи в Hibernate [0%] #

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

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

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

24. Hibernate и Lombok [1%] #

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

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

Spring [80%] #

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

2. Inversion of Control [11%] #

3. Dependency Injection [13%] #

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

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

6. @Autowired [4%] #

7. @Qualifier vs @Primary [13%] #

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

9. Скоуп бинов. Веб скоуп [26%] #

10. Как обеспечить, чтобы при внедрении бина со скоупом prototype в singleton-бин (через autowiring, конструктор или иным способом) каждый вызов получал новый экземпляр, и какие проблемы могут возникнуть при этом, включая случаи с разными реализациями? [4%] #

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

12. @ComponentScan [4%] #

13. @Conditional в Spring [4%] #

14. @Service, @Repository, @Component [12%] #

15. @Controller и @RestController [9%] #

16. @ResponseBody vs ResponseEntity [0%] #

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

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

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

20. Spring Boot [7%] #

21. Spring Boot vs Spring [9%] #

22. Spring JDBC [1%] #

23. Spring Data JPA [4%] #

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

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

26. Атрибут propagation у @Transactional [9%] #

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

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

29. @Async [2%] #

30. Starter в Spring. Плюсы и минусы [4%] #

31. Spring Criteria API [3%] #

32. @Scheduled [3%] #

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

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

35. Что такое ApplicationContext? [4%] #

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

37. @ConfigurationProperties? ConfigurationProperties vs Value [1%] #

38. @Value. Что это? [1%] #

39. Как работает DispatcherServlet? [3%] #

40. Варианты обработки Exceptions в Spring [1%] #

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

42. @PostConstruct [3%] #

43. Dependency management в Spring boot [0%] #

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

45. Spring Profiles как с ними работать? [2%] #

46. Виды proxy в Spring [5%] #

47. @Lookup [2%] #

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

49. @Lazy [4%] #

50. @ControllerAdvice [4%] #

51. Как устроен Spring Security [2%] #

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

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

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

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

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

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

6. Adapter vs Decorator [0%] #

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

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

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

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

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

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

Web [24%] #

1. REST [6%] #

2. RESTful и RESTless [2%] #

3. REST vs SOAP [1%] #

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

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

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

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

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

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

10. GET vs POST [4%] #

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

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

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

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

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

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

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

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

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

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

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

3. CAP теорема [1%] #

4. Паттерн Circuit Breaker [3%] #

5. Паттерн API Gateway [2%] #

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

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

8. Что такое Transactional Outbox [3%] #

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

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

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

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

4. Что такое Producer и что такое Consumer [1%] #

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

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

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

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

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

10. Kafka. Consumer Group [9%] #

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

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

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

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

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

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

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

18. Acknowledgment в Kafka [0%] #

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

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

21. DLQ topic? [0%] #

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

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

2. Mock vs spy [4%] #

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

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

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

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

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

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

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

Деплой [12%] #

1. CI/CD [3%] #

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

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

4. Docker compose [4%] #

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

6. Docker cmd vs entrypoint [0%] #

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

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

Другое [20%] #

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

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

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

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

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

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

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

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