Технические вопросы #ООП [13%] #1. Что такое ООП? [4%] #2. Плюсы и минусы ООП [0%] #3. Принципы ООП (наследование, инкапсуляция, полиморфизм, абстракция) [12%] #4. Класс, объект, интерфейс [1%] #5. Ассоциация, агрегация, композиция [1%] #6. Статическое и динамическое связывание [1%] #7. Является – «is a», имеет – «has a» [1%] #SOLID [21%] #1. Что такое SOLID(каждая буква)? [21%] #2. Какие принципы можешь назвать? [2%] #3. Когда мы можем нарушать принципы SOLID? [1%] #Java Core [64%] #1. Расскажи мне про контракт и свойства Equals & Hashcode [21%] #2. Что такое коллизия? [4%] #3. Какие типы ссылок существуют в Java? [5%] #4. Какой класс называют Immutable? [10%] #5. Основная идея языка [0%] #6. За счет чего обеспечена кроссплатформенность? [1%] #7. Плюсы и минусы Java? [0%] #8. JVM, JRE, JDK, JIT [4%] #9. Что такое байт-код? [1%] #10. Что такое сборщик мусора (garbage collector)? [8%] #11. Области памяти Java. Stack и heap. Что это такое? [16%] #12. Типы данных в Java [1%] #13. Что такое класс-обертка? [3%] #14. Автоупаковка и автораспаковка [1%] #15. Строки/String в Java? Из чего состоит? Нюансы [4%] #16. Что такое пул строк/String pool? [8%] #17. Почему не рекомендуется изменять строки в цикле? [1%] #18. Разница между String, StringBuffer, StringBuilder [4%] #19. Каким образом переменные передаются в методы — по значению или по ссылке? [1%] #20. Что такое enum? [1%] #21. Что такое конструктор? [1%] #22. Какие есть модификаторы доступа? Какие применимы к классам? [4%] #23. Что означает static? [6%] #24. Можно ли сузить уровень доступа или тип возвращаемого значения при переопределении метода? [1%] #25. Что можно изменить в сигнатуре метода при переопределении? Можно ли менять модификаторы (throws и т. п.)? [0%] #26. Что означает модификатор final? К чему он может быть применим? [7%] #27. Что такое абстрактные классы? [3%] #28. Что такое интерфейсы? [4%] #29. Отличия интерфейса от абстрактных классов? [16%] #30. Каков порядок вызова конструкторов и блоков инициализации с учетом иерархии классов? [4%] #31. Зачем нужны и какие бывают блоки инициализации? [1%] #32. Для чего в Java используются статические блоки инициализации? [1%] #33. Класс Object и его методы? [5%] #34. Что такое сериализация и для чего она нужна? [1%] #35. Разница между версиями Java [1%] #36. Может ли абстрактный класс быть final? #37. Integer pool [1%] #38. Какие виды загрузчиков классов ты знаешь? [1%] #39. Record-ы с Java 17. Для чего и зачем? [1%] #40. Что такое Анонимный класс [1%] #41. Расскажи что делает JIT компилятор [2%] #42. Расскажи про прогрев JVM [1%] #43. break vs continue в цикле [1%] #44. Что такое аннотация? Зачем нужна? Как создать свою аннотацию? [5%] #45. Переопределение и перегрузка методов [4%] #Коллекции [58%] #1. Расскажите как выглядит иерархия коллекций [24%] #2. Что такое ArrayList? [7%] #3. ArrayList. Какая размерность массива по умолчанию? [1%] #4. ArrayList. Что происходит под капотом при добавлении/удалении элемента в начало/середину/конец списка? [7%] #5. ArrayList - сложность операций [4%] #6. Что такое LinkedList? [3%] #7. LinkedList. Что происходит под капотом при добавлении/удалении элемента в начало/середину/конец списка? [4%] #8. LinkedList - сложность операций [5%] #9. ArrayList vs LinkedList [16%] #10. Что такое TreeMap? [3%] #11. TreeMap - сложность операций [0%] #12. Внутреннее устройство TreeMap [1%] #13. Что такое HashMap? [13%] #14. Внутреннее устройство HashMap [15%] #15. HashMap - сложность операций [13%] #16. Процесс добавления объекта в HashMap [15%] #17. Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()? [18%] #18. Ключи в HashMap [7%] #19. Что такое HashSet? [4%] #20. Как HashSet связан с HashMap? [1%] #21. Внутреннее устройство HashSet [1%] #22. HashSet - сложность операций [0%] #23. Процесс добавления объекта в HashSet? [0%] #24. Будет ли работать HashSet, если все добавляемые элементы будут иметь одинаковый hashCode()? [0%] #25. Что такое Queue? [1%] #26. Queue - сложность операций [0%] #27. Назовите главные реализации Queue [1%] #28. Что такое Dequeue? [1%] #29. Назовите главные реализации Dequeue [0%] #30. Dequeue - сложность операций [0%] #31. Какая коллекция реализует дисциплину обслуживания LIFO? FIFO? [2%] #32. HashMap vs TreeMap [3%] #33. Как с собой связаны Iterable и foreach? [2%] #34. Реализации интерфейса Map. Почему интерфейс Map выделен отдельно? [7%] #35. Какую коллекцию использовать для уникальных отсортированных значений? [1%] #36. HashTable - что это такое? [1%] #37. Arrays.asList() and List.of() [1%] #38. Структуры данных. Какая сложность в дереве? [4%] #Исключения [31%] #1. Расскажите про иерархию исключений [16%] #2. Что такое Error и Exception? [7%] #3. Расскажите про обрабатываемые и необрабатываемые исключения [13%] #4. О чем говорит ключевое слово throws? [1%] #5. Как создать собственное («пользовательское») исключение? [4%] #6. Расскажите про механизм обработки исключений в java (Try-catch-finally) [9%] #7. Возможно ли использование блока try-finally (без catch)? [0%] #8. Может ли один блок catch отлавливать сразу несколько исключений? [1%] #9. Всегда ли выполняется блок finally? Существуют ли ситуации, когда блок finally не будет выполнен? [4%] #10. В каком порядке следует обрабатывать исключения в catch блоках? [2%] #11. Что такое механизм try-with-resources? [2%] #12. Ошибка OutOfMemoryError. Поймать утечку памяти и пофиксить [9%] #13. @SneakyThrows в Lombok [1%] #14. StackOverflowError vs OutOfMemoryError [4%] #Дженерики [21%] #1. Что такое дженерики? Для чего нужны? [10%] #2. Что такое сырые типы? [0%] #3. Что такое вайлдкард [1%] #4. Расскажите про принцип PECS [6%] #5. Расскажите про класс Optional [7%] #6. Как JVM работает с Generics [1%] #Функциональные интерфейсы [16%] #1. Что такое функциональный интерфейс? [10%] #2. Для чего нужна аннотация @FunctionalInterface [2%] #3. Какие встроенные функциональные интерфейсы вы знаете? [5%] #4. Что такое ссылка на метод? [1%] #5. Что такое лямбда выражение? Чем его можно заменить? [6%] #6. Что делает Интерфейс Function [1%] #Stream API [31%] #1. Что такое Stream Api и для чего нужны Stream? [12%] #2. Почему Stream называют ленивым? [3%] #3. Какие существуют способы создания Stream? [0%] #4. Типы методов в Stream API [7%] #5. Что такое промежуточные методы? Какие промежуточные методы в стримах вы знаете [7%] #6. Что такое терминальные методы? Какие терминальные методы в стримах вы знаете [10%] #7. Методы в Stream API [0%] #8. Расскажите про класс Collectors и его методы [1%] #9. Что такое IntStream и DoubleStream? [0%] #10. Разница между parallel и parallelStream? [1%] #11. Для чего нужны операции Consumer, Function, Supplier [1%] #12. Что такое параллельные стримы? [4%] #13. Какая разница между findAny() и findFirst() [2%] #Многопоточность [50%] #1. Что такое многопоточность? [2%] #2. Чем процесс отличается от потока? [4%] #3. Чем Thread отличается от Runnable? Когда использовать Thread, а когда Runnable? [1%] #4. Что такое монитор? Как реализован в Java? [3%] #5. Что такое синхронизация? Какие способы синхронизации существуют в Java? [16%] #6. Что такое FutureTask? [2%] #7. Что такое ExecutorService? [6%] #8. Как работать с коллекциями в многопоточном программировании? [4%] #9. SynchronizedCollections. Что это? За счет чего достигается потокобезопасность? [0%] #10. Что такое Deadlock [11%] #11. Что такое Livelock [5%] #12. Что такое Race condition [8%] #13. Atomic vs Volatile. Что это и когда использовать? [7%] #14. Зачем нужны atomic [18%] #15. Зачем нужны volatile [17%] #16. Какие бывают состояния у потока? [2%] #17. Collections.synchronizedMap vs ConcurrentHashMap [3%] #18. Какими способами можем запустить несколько потоков в Java приложении? Как запустить поток в Java? [9%] #19. Что за интерфейсы Runnable и Callable? В чем между ними отличия? [5%] #20. Расскажи про пакет concurrent [1%] #21. Способы решения задач для многопоточного доступа [1%] #22. Чем конкурентность отличается от параллелизма? [1%] #23. Что такое CAS операции? (Compare And Swap) [4%] #24. Асинхронность vs многопоточность [3%] #25. Зачем нужны пулы потоков? [1%] #26. Что значит потокобезопасность? [1%] #27. Области памяти в многопоточности? [2%] #28. Executors.newCachedThreadPool() [1%] #29. Что такое happens-before? [4%] #30. ForkJoinPool vs FixedThreadPool [1%] #Базы данных [15%] #1. Виды БД и для чего их лучше использовать? [3%] #2. Масштабирование. Как решить нехватку места на сервере? [3%] #3. Репликация базы данных. Что это такое?[5%] #4. Что такое шардирование? [7%] #5. NoSQL vs SQL [4%] #6. Партиционирование [4%] #SQL [77%] #1. Что такое транзакции? [12%] #2. Расскажите про ACID [17%] #3. Проблемы параллельных транзакций [4%] #4. Уровни изолированности (read uncommitted, read committed, repeatable read, serializable) [22%] #5. Виды JOIN. Как работает каждый JOIN? [16%] #6. Индексы в SQL. Что это? [24%] #7. Плюсы и минусы индексов [12%] #8. Какие виды индексов знаешь? [10%] #9. Нормализация и денормализация. Перечислите формы [7%] #10. Что такое внешний ключ? [0%] #11. Чем WHERE отличается от HAVING? Можем ли мы их использовать в одном запросе? [10%] #12. Чем отличается MySQL от PostgreSQL? [0%] #13. Оптимизация запросов. Какие инструменты? [19%] #14. EXPLAIN vs EXPLAIN ANALYZE [13%] #15. PostgreSQL. Какой инструмент для сбора статистики? PGSTAT [1%] #16. Что такое селективность? [4%] #17. Ключевое слово LATERAL [1%] #18. Оконные функции. PARTITION BY [2%] #19. cube, rollup, groupBy [1%] #20. Хранимые процедуры [3%] #21. Как работает Serializable? [1%] #22. View, materialized view. представлениями, материализованными представлениями? [3%] #23. C помощью SQL блокировка строки? - SELECT FOR UPDATE [2%] #24. UNION vs UNION ALL [3%] #25. Расскажи про ключевое слово DISTINCT? [2%] #26. Что такое табличные выражения? [1%] #27. Для чего используется Database Connection Pool? (Hikari) Переполнение connection pool [1%] #28. Блокировки и локи. Оптимистичная и Пессимистичная [16%] #29. БД. Constraint. Какие существуют? [2%] #30. Primary Key [4%] #31. Foreign Key [4%] #32. DELETE vs TRUNCATE [1%] #NoSQL [3%] #1. NoSQL типы БД [1%] #2. Для чего используется Redis? [2%] #3. Что такое Кэш? [1%] #Миграции [4%] #1. Liquibase. Что это и для чего? [3%] #2. Какие записи создаёт liquibase во время миграции? [1%] #3. Зачем нужны инструменты миграции? [1%] #ORM [52%] #1. Что такое Hibernate, JPA, JDBC, ORM? [8%] #2. Плюсы и минусы ORM [3%] #3. Как создать Entity и что это такое? [4%] #4. Может ли Entity наследоваться от не-Entity классов? [0%] #5. Может ли Entity наследоваться от других Entity классов? [0%] #6. Почему мы не можем использовать final классы в качестве Entity? [1%] #7. Что такое Proxy и для чего используется? [10%] #8. FetchType [1%] #9. Жизненный цикл сущности [6%] #10. Кэширование [9%] #11. HQL и JPQL [1%] #12. EntityManager + EntityManagerFactory / SessionFactory + session [3%] #13. Проблема N + 1. Способы решения проблемы [24%] #14. Что такое Entity Graph? [5%] #15. Statement, Prepared statement, Callable statement [1%] #16. Связи между таблицами в ORM [2%] #17. LazyInitializationException [5%] #18. Что такое SQL-инъекция? [1%] #19. Проблемы JOIN FETCH [0%] #20. Логи в Hibernate [1%] #21. Аннотация @Query, что это такое? [1%] #22. Как Hibernate генерирует SQL запросы? [1%] #23. Hibernate. Что хранится в Persistence Context? Сколько времени объект хранится в Persistence Context? [2%] #24. Hibernate и Lombok [1%] #25. Как JPA делает запросы? [1%] #Spring [81%] #1. Зачем мы используем Spring? Почему его так любят? [16%] #2. Inversion of Control [13%] #3. Dependency Injection [17%] #4. Какие способы внедрения зависимостей знаешь? [13%] #5. Почему лучше использовать конструктор? [10%] #6. @Autowired [4%] #7. @Qualifier vs @Primary [19%] #8. Что такое Bean? [13%] #9. Скоуп бинов. Веб скоуп #10. Как обеспечить, чтобы при внедрении бина со скоупом prototype в singleton-бин (через autowiring, конструктор или иным способом) каждый вызов получал новый экземпляр, и какие проблемы могут возникнуть при этом, включая случаи с разными реализациями? [5%] #11. Жизненный цикл Bean. Вопросы связанные с классами входящими в жизненный цикл бина [18%] #12. @ComponentScan [4%] #13. @Conditional в Spring [6%] #14. @Service, @Repository, @Component [13%] #15. @Controller и @RestController [10%] #16. @ResponseBody vs ResponseEntity [0%] #17. Spring MVC. Что это? Какие проблемы решает? [2%] #18. Парадигма AOP [4%] #19. Циклическая зависимость [7%] #20. Spring Boot [9%] #21. Spring Boot vs Spring #22. Spring JDBC [1%] #23. Spring Data JPA [3%] #24. Блокировка по умолчанию в Spring [1%] #25. @Transactional. Как работает? [30%] #26. Атрибут propagation у @Transactional [11%] #27. @Transaction Что будет если вызвать метод из метода в одном классе при различных сценариях [10%] #28. Как гарантировать корректное обновление и сохранение изменений в сущностях, полученных в методе с @Transactional [2%] #29. @Async [3%] #30. Starter в Spring. Плюсы и минусы [6%] #31. Spring Criteria API [3%] #32. @Scheduled [4%] #33. Понятие Controller и Servlet в Java. Это одно и то же? Если разное, в чем отличия? [1%] #34. Что такое объект Filter? В какой момент вызывается? [1%] #35. Что такое ApplicationContext? [5%] #36. Зачем нужны аннотации @RequestParam и @PathVariable? [1%] #37. @ConfigurationProperties? ConfigurationProperties vs Value [2%] #38. @Value. Что это? [1%] #39. Как работает DispatcherServlet? [1%] #40. Варианты обработки Exceptions в Spring [2%] #41. @Configuration. Является Configuration компонентом? Какую доп логику Configuration реализует? [1%] #42. @PostConstruct [4%] #43. Dependency management в Spring boot [1%] #44. Spring Security, как хранить пароль пользователя? [1%] #45. Spring Profiles как с ними работать? [2%] #46. Виды proxy в Spring [3%] #47. @Lookup [3%] #48. Как работает BeanPostProcessor. Почему есть before и after initialization [3%] #Паттерны проектирования [19%] #1. GOF паттерны [10%] #2. Что такое паттерн? [0%] #3. Плюсы и минусы использования паттернов [0%] #4. Какие существуют группы паттернов? [4%] #5. Какие паттерны в какую группу входят? [1%] #6. Adapter vs Decorator [0%] #7. Паттерн MVC [1%] #8. Паттерн Command [1%] #9. Паттерн Chain of responsibility [1%] #10. Как реализуется паттер Abstract Factory? [2%] #11. Какие паттерны проектирования используются в Spring [2%] #12. Плюсы и минусы паттерна Singleton? [4%] #Web [24%] #1. REST [4%] #2. RESTful и RESTless [2%] #3. REST vs SOAP [1%] #4. В каких ситуациях допустимо использование RESTless [0%] #5. REST vs RPC. Как выбрать что лучше подходит? [4%] #6. Назовите 6 принципов REST API [1%] #7. Идемпотентный метод [3%] #8. Основные HTTP методы [6%] #9. Статусы ответов [1%] #10. GET vs POST [4%] #11. Разница HTTP и HTTPs [2%] #12. Из чего состоит HTTP запрос [1%] #13. Какие методы авторизации существуют для HTTP протокола? [1%] #14. Из чего состоит JSON Web Token? [1%] #15. Какие протоколы уровня приложений? [1%] #16. Что такое HTTP? [1%] #17. За что отвечают Cookie/куки? [1%] #18. Отличия POST, PUT, PATCH [4%] #Микросервисы [20%] #1. Монолит vs Микросервис [5%] #2. Паттерн Saga в микросервисной архитектуре [7%] #3. CAP теорема [1%] #4. Паттерн Circuit Breaker [4%] #5. Паттерн API Gateway [2%] #6. HTTP vs Kafka. Какой способ общения между микросервисами лучше и почему? [1%] #7. Шаблоны проектирования для микросервисов (паттерны) [4%] #Брокеры сообщений [44%] #1. Плюсы и минусы брокеров сообщений [4%] #2. Разница между Kafka и RabbitMQ [5%] #3. Что такое топик в Kafka? [7%] #4. Что такое Producer и что такое Consumer [1%] #5. Что такое partition в Kafka? [10%] #6. Гарантии доставки в Kafka [9%] #7. Какие существуют паттерны работы с очередями? [1%] #8. Основные компоненты Kafka? [12%] #9. Kafka. Consumer Group [11%] #10. Из чего состоит Kafka кластер? [1%] #11. Брокеры сообщений vs Rest [4%] #12. Pull и push модели, в чём разница? [1%] #13. Как гарантировать в Kafka идемпотентность, чтобы не было задвоений и потерь сообщений? [5%] #14. Как в Kafka гарантируется последовательность сообщений? [3%] #15. Что сделать, чтобы сообщения попадали в одну партицию? [1%] #16. Как работает Round Robin? [1%] #17. Acknowledgment в Kafka [1%] #18. Смещение (offset) в Kafka [1%] #19. Повторное чтение данных из Kafka [1%] #20. DLQ topic? [1%] #Тестирование [11%] #1. На чем пишутся тесты? [2%] #2. Mock vs spy [4%] #3. Параметризованные тесты [1%] #4. Unit тесты. Что это и зачем? [1%] #5. Unit тесты vs интеграционные тесты [2%] #6. Mock. Как работает? [4%] #7. Spy. Как работает? [1%] #8. Каким образом проверяются результаты тестов? [1%] #9. Основные аннотации в тестировании[1%] #Деплой [10%] #1. CI/CD [4%] #2. Как работает Docker. Из чего состоит докер образ? [4%] #3. Что такое слой? Как мы можем создать новый слой? [1%] #4. Docker compose [4%] #5. ARG, ENV. В чем отличия? [1%] #6. Docker cmd vs entrypoint [1%] #7. Отличия контейнеризации от виртулизации [2%] #8. Поддержка сервиса в продакшене, мониторинг его работы. Общие подходы? [1%] #Другое [11%] #1. Инструменты для отладки приложения, течет память, все замирает - Visual VM, JMap, профилировщики [1%] #2. Для чего нужно O большое в алгоритмах? (Что такое сложность в алгоритме) [6%] #3. Какой подход к неймингу методов позволяет ясно и однозначно отражать их функциональность, например, для методов, которые выполняют поиск с сортировкой, очистку кэша или расчёт с сохранением данных и возвратом статуса? [1%] #4. Как выявлять и устранять узкие места производительности в REST-сервисах и микросервисных архитектурах, когда рост нагрузки (например, увеличение трафика или обращений к БД) приводит к значительно более долгой обработке запросов, чем ожидается, и какие стратегии оптимизации (в том числе архитектурные изменения и масштабирование) могут помочь достичь требуемых временных рамок отклика? [3%] #