📘 Разбор опроса
Spring Security: UserDetailsService
Вопрос: Какой метод нужно реализовать в UserDetailsService?
✅ Правильный ответ: loadUserByUsername
Метод loadUserByUsername загружает данные пользователя по имени для аутентификации.
Spring Security: UserDetailsService
Вопрос: Какой метод нужно реализовать в UserDetailsService?
✅ Правильный ответ: loadUserByUsername
Метод loadUserByUsername загружает данные пользователя по имени для аутентификации.
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #junior #backend_arch
🧠 Монолит vs Микросервисы: Простота развертывания
Anonymous Quiz
100%
Монолит
0%
Микросервисы
0%
Одинаково сложно
📘 Разбор опроса
Монолит vs Микросервисы: Простота развертывания
Вопрос: Что проще развернуть и тестировать?
✅ Правильный ответ: Монолит
Монолит проще развертывать и тестировать из-за единой кодовой базы.
Монолит vs Микросервисы: Простота развертывания
Вопрос: Что проще развернуть и тестировать?
✅ Правильный ответ: Монолит
Монолит проще развертывать и тестировать из-за единой кодовой базы.
❓ Вопрос
Опишите конкретный случай, когда выбор типа балансировщика нагрузки (например, Round Robin vs Least Connections) повлиял на производительность сервиса. Какие метрики и данные вы анализировали для этого решения?
✅ Ответ
Выбор типа балансировщика нагрузки определяется распределением заданий между серверами и их текущей нагрузкой. Round Robin равномерно распределяет запросы без учёта загрузки, что подходит при одинаковой производительности узлов и равномерном трафике. Least Connections оптимизирует производительность в условиях разной загрузки серверов, направляя запросы на наименее загруженные. Для принятия решения анализируются метрики времени отклика, загрузки CPU и количества активных соединений для оценки эффективности балансировки.
#lexicon #собеседование #java #senior #backend_networking #backend #core
Опишите конкретный случай, когда выбор типа балансировщика нагрузки (например, Round Robin vs Least Connections) повлиял на производительность сервиса. Какие метрики и данные вы анализировали для этого решения?
✅ Ответ
#lexicon #собеседование #java #senior #backend_networking #backend #core
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #junior #spring_injection
🧠 Способы конфигурации бинов в Spring
Anonymous Quiz
0%
Только XML
100%
XML, Java Config, аннотации
0%
Только аннотации
📘 Разбор опроса
Способы конфигурации бинов в Spring
Вопрос: Какие основные способы конфигурации Spring бинов?
✅ Правильный ответ: XML, Java Config, аннотации
Spring поддерживает три основных подхода: XML, Java Config и аннотации. Они могут использоваться совместно.
Способы конфигурации бинов в Spring
Вопрос: Какие основные способы конфигурации Spring бинов?
✅ Правильный ответ: XML, Java Config, аннотации
Spring поддерживает три основных подхода: XML, Java Config и аннотации. Они могут использоваться совместно.
❓ Вопрос
Как используя volatile или Atomic-переменные, можно снизить вероятность race conditions? Расскажите с примерами.
✅ Ответ
Использование volatile гарантирует видимость изменений переменной между потоками, предотвращая кэширование значений в рабочих потоках, но не обеспечивает атомарность операций. Atomic-переменные, такие как AtomicInteger, предоставляют атомарные методы для изменения данных без явной синхронизации, что снижает вероятность race conditions при обновлении счётчиков или флагов. Например, метод incrementAndGet() атомарно увеличивает значение, исключая состояния гонки. Такой подход упрощает многопоточное программирование, уменьшая необходимость использования synchronized блоков.
#lexicon #собеседование #java #junior #java_concurrency #backend
Как используя volatile или Atomic-переменные, можно снизить вероятность race conditions? Расскажите с примерами.
✅ Ответ
#lexicon #собеседование #java #junior #java_concurrency #backend
📘 Разбор опроса
Кеширование в REST API
Вопрос: Какой заголовок HTTP используется для условных запросов с ETag?
✅ Правильный ответ: If-None-Match
If-None-Match отправляется клиентом с ETag для проверки изменений ресурса.
Кеширование в REST API
Вопрос: Какой заголовок HTTP используется для условных запросов с ETag?
✅ Правильный ответ: If-None-Match
If-None-Match отправляется клиентом с ETag для проверки изменений ресурса.
❓ Вопрос
Расскажите, как добиться неизменяемости коллекции на практике. Какие конкретные классы и методы Java для этого используете? Приведите пример кода на уровне описания.
✅ Ответ
Добиться неизменяемости коллекции в Java можно с помощью стандартных методов из класса Collections, таких как Collections.unmodifiableList(), unmodifiableSet() и других. Эти методы создают обертку над исходной коллекцией, предотвращая изменения через полученный объект, однако сама исходная коллекция может изменяться, если есть прямой доступ. Для полной неизменяемости можно использовать небходимые классы из пакета java.util.Immutable*, либо коллекции из Java 9 и выше, создаваемые методами List.of(), Set.of(), которые возвращают действительно неизменяемые объекты. Важно понимать, что неизменяемость зависит от типа коллекции и используемых методов, а также от того, не хранятся ли во вложенных объектах изменяемые данные.
#lexicon #собеседование #java #junior #java_fundamentals #backend
Расскажите, как добиться неизменяемости коллекции на практике. Какие конкретные классы и методы Java для этого используете? Приведите пример кода на уровне описания.
✅ Ответ
#lexicon #собеседование #java #junior #java_fundamentals #backend
❓ Вопрос
Как реализовать паттерн хранения данных 'шардинг' в NoSQL базе? Какие шаги нужно предпринять и какие подводные камни учитывать?
✅ Ответ
Шардинг в NoSQL реализуется путем распределения данных по разным сегментам (шардам) на основе выбранного ключа шардирования, обеспечивая масштабируемость и снижая нагрузку на отдельные узлы. Основные шаги включают выбор подходящего шард-ключа с равномерным распределением данных, настройку механизма маршрутизации запросов к нужному шард-у и обеспечение репликации для отказоустойчивости. Следует учитывать риски связанные с несбалансированным распределением данных (горячие шард-ы), сложностью миграции данных при изменении шард-ключа и особенностями консистентности в распределенной системе.
#lexicon #собеседование #java #senior #backend_storage #backend #core
Как реализовать паттерн хранения данных 'шардинг' в NoSQL базе? Какие шаги нужно предпринять и какие подводные камни учитывать?
✅ Ответ
#lexicon #собеседование #java #senior #backend_storage #backend #core
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #middle #java_performance
🧠 JFR для анализа многопоточных приложений
Anonymous Quiz
100%
Длительность блокировок и загрузка CPU
0%
Объём памяти и количество классов
0%
Размер логов и время запуска
📘 Разбор опроса
JFR для анализа многопоточных приложений
Вопрос: Какие метрики JFR в первую очередь указывают на bottlenecks в многопоточных приложениях?
✅ Правильный ответ: Длительность блокировок и загрузка CPU
Для выявления узких мест в многопоточных приложениях в JFR анализируют длительность блокировок (lock contention), время ожидания потоков и загрузку CPU.
JFR для анализа многопоточных приложений
Вопрос: Какие метрики JFR в первую очередь указывают на bottlenecks в многопоточных приложениях?
✅ Правильный ответ: Длительность блокировок и загрузка CPU
Для выявления узких мест в многопоточных приложениях в JFR анализируют длительность блокировок (lock contention), время ожидания потоков и загрузку CPU.
❓ Вопрос
Какие методы аутентификации и авторизации вы применяете для защиты REST API? Приведите пример реализации токен-бейзед аутентификации.
✅ Ответ
Для защиты REST API применяются методы аутентификации, такие как Basic Auth, OAuth 2.0, API ключи, и JWT (JSON Web Token) для токен-бейзед аутентификации. Токены позволяют серверу не хранить состояние сессии, передавая зашифрованные данные о пользователе в каждом запросе. В примере JWT создается сервером при логине, подписывается секретным ключом и возвращается клиенту, который добавляет токен в заголовок Authorization для последующих запросов. Сервер валидирует токен, проверяет подпись и разрешает доступ к ресурсам.
#lexicon #собеседование #java #middle #backend_http #backend #core
Какие методы аутентификации и авторизации вы применяете для защиты REST API? Приведите пример реализации токен-бейзед аутентификации.
✅ Ответ
#lexicon #собеседование #java #middle #backend_http #backend #core
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #middle #spring_data
🧠 Каскадное обновление в JPA
Anonymous Quiz
100%
CascadeType.PERSIST
0%
CascadeType.MERGE
0%
CascadeType.REMOVE