Skip to content

Вопросы для собеседования Java Developer

Notifications You must be signed in to change notification settings

Shell26/Java-Developer

Repository files navigation

Вопросы для собеседования на Java Developer

Тут могут быть ошибки/неточности - используйте на свой страх и риск. Но буду благодарен, если укажете на косяки)

Вопросы для разбора

  1. Java Core: С какой проблемой можно столкнуться при увеличении размера heap памяти. Почему программисты стараются излишне не расширять ее
  2. Java Core: Ускоряет ли вычисление программы использование parallelStream() в Stream ? В каких случаях да, а в каких нет
  3. Java Core: какой размер у String Pool?
  4. Java Core: какой GC используется по дефолту в Java 8/11
  5. Java Core: что такое Stop The World
  6. Java Core: чем лямбда отличается от анонимного класса
  7. Java Core: какие методы можно вызвать у Throwable
  8. Java Core: назови классы, которые наследуются не от Object
  9. Maven: как передавать стартовые параметры через мавен
  10. Java Core: назовите Immutable коллекции
  11. Java Core: как сделать иммутабельным класс, у которого в полях находятся ссылочные неиммутабельные типы (final не поможет, потому что финализируется ссылка, а не объект, и сам объект можно будет изменить)
  12. Java Core: Максимальное кол-во элементов в массиве? Максимальный размер ArrayList? Максимальный размер LinkedList? Почему в LinkedList лучше не использовать size() при итеррировании, и как лучше итеррироваться?
  13. SQL: что такое Explain и чем Explain отличается от Explain Analyse
  14. Spring: @Value отрабатывает до вызова конструктора или после?
  15. Spring: На каком этапе происходит внедрение зависимостей при использовании @Autowired над конструктором?
  16. Spring: как выбрать профиль
  17. Spring: Какой из трех способов автовайринга рекомендуется использовать разработчиками спринга и по каким причинам.
  18. Spring: можно ли создать два бина со скоупом сингтон одного класса
  19. Spring: мы создали контроллер и инжектим бин со скоупом Session. Как спринг будет подставлять каждой сессии новый бин, если контекс инициализируется со стартом приложения
  20. Spring: какие исключения может обрабатывать @Transactional по дефолту. Может ли он обработать пробрасываемое исключение

Микросервисная архитектура. Основные принципы. Отличия от Монолита и SOA

  1. 12-ти факторная модель создания облачных приложений
  2. IaaS, PaaS, SaaS https://gigacloud.ua/ru/blog/navchannja/hmarna-piramida-iaas-paas-i-saas
  3. CAP теорема
  4. Паттерны микросервисной архитектуры. https://mcs.mail.ru/blog/26-osnovnyh-patternov-mikroservisnoj-razrabotki
  5. Паттерны интеграции микросервисов https://www.enterpriseintegrationpatterns.com/patterns/messaging/

Apache Kafka

https://www.youtube.com/watch?v=-AZOi3kP9Js Основы кафки

https://www.youtube.com/watch?v=c_mkpVg5rlg Обзор брокеров сообщений

https://www.youtube.com/watch?v=Y1eSeEJDses вебинар по обзору некоторых фишек в кафке

  1. Что такое очередь сообщений.
  2. Основные концепции очередей
  3. ? Kafka vs Rabbit MQ
  4. Основные сущности Kafka

Kafka Cluster. Zookeaper

  1. Zookeper. Хранение метаданных кластера
  2. Kafka кластер. Устройство
  3. Партиционирование. Leader партиция.
  4. Репликация
  5. Настройка Kafka кластера для корректной работы партиционирования и репликации
  6. Устройство файлового хранилища Kafka
  7. TTL

Producer

  1. Producer. Из каких шагов состоит инцициализация
  2. Стратегии коммитинга. Гарантия доставки
  3. Сериализация, Десериализация
  4. Стратегии выбора партиции продюссером
  5. Можно ли из топика (распределен по 3 партициям) прочитать сообщения в том же порядке, в котором они были записаны? Почему?
  6. Как сделать так, чтобы все сообщения по одному клиенту попали в одну партицию?
  7. Timestamp
  8. Headers
  9. Batch size. Linger time
  10. Retry

Consumer

Docker, Kubernetes, OpenShift.

  1. Контейнеризация

Реактивщина

https://projectreactor.io/docs/core/release/api/ - список классов и методов по Project Reator

https://habr.com/ru/post/565000/ - основной источник материалов

  1. Реактивное программирование. Основные принципы. Преимущество реактивного программирование над блокирующим.
  2. Перечислите основные виды потерь на блокирующем типе программирования в web
  3. Объясните понятие backpressure. Что оно дает. https://habr.com/ru/post/512724/
  4. При каком количестве запросов и нагрузке имеет реактивно построенное приложение начинает выигровать у приложения с блокироющим типом запросов. Приведите оценки
  5. Основные библиотеки

Rector Core

  1. Cтандарт спецификации Reactive Streams.
  2. Reactive Streams: Основные интефейсы
  3. Reactive Streams: Publisher
  4. Reactive Streams: Subscriber
  5. Основные модули Project Reactor
  6. Reactor Core: основные интерфейсы
  7. Flux Api. Основные методы https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html
  8. Mono Api. Основные методы
  9. Обработка ошибок
  10. Тестирование
  11. Параллельное выполнение. Scheduler
  12. Backpressure: оператор request
  13. Горячий и холодный паблишер. Что это. Как создать
  14. Контекст: локальные переменные для контекста
  15. Sinks. События
  16. Отладка/Debug реактивной программы

Spring WebFlux (Расширить)

  1. Реактивные Application Servers: Netty, Jetty, Tomcat, Servlet 3.1, HTTP 2.0
  2. Spring WebFlux. Для чего используется
  3. Обработка запроса. Аннотационная модель: контроллеры на базе WebFlux
  4. Обработка запроса. Функциональная модель: HandlerFunctions, RouterFunctions,
  5. Spring Security WebFlux.
  6. Отправка запросов. WebClient. Основные методы
  7. WebSocket, RSocket
  8. Тестирование WebFlux

R2DBC (Расширить)

  1. Что такое R2DBC, Программы, реализующие драверы для R2DBC
  2. SPRING DATA R2DBC
  3. ReactiveCrudRepository
  4. DatabaseClient. Оптравка SQL запросов напрямую в БД
  5. Транзакции

ООП

к оглавлению

Java Core

к оглавлению

Java Collections

к оглавлению

Java 8

к оглавлению

Java 9-16

Потоки ввода/вывода в Java

к оглавлению

Сериализация

к оглавлению

Многопоточность

к оглавлению

Базы данных

к оглавлению

SQL

к оглавлению

JDBC

к оглавлению

Spring

Алгоритмы

к оглавлению

Kotlin

к оглавлению

Шаблоны проектирования

к оглавлению

Тестирование

к оглавлению

Журналирование

к оглавлению

Servlets, JSP, JSTL

к оглавлению

UML

к оглавлению

XML

к оглавлению

Основы HTML

к оглавлению

Основы CSS

к оглавлению

Основы WEB

к оглавлению

Дополнительные материалы

к оглавлению

Источники

About

Вопросы для собеседования Java Developer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published