📘 Разбор опроса
Кеширование в 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
📘 Разбор опроса
Каскадное обновление в JPA
Вопрос: Какой CascadeType автоматически обновляет связанные сущности при merge?
✅ Правильный ответ: CascadeType.MERGE
CascadeType.MERGE распространяет операцию merge на связанные сущности.
Каскадное обновление в JPA
Вопрос: Какой CascadeType автоматически обновляет связанные сущности при merge?
✅ Правильный ответ: CascadeType.MERGE
CascadeType.MERGE распространяет операцию merge на связанные сущности.
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #middle #backend
🧠 JWT в Spring Security: извлечение токена из запроса
Anonymous Quiz
0%
request.getHeader("Authorization")
0%
request.getParameter("token")
100%
request.getCookies() с поиском по имени
🚀 Готовитесь к IT-собеседованиям?
В каналах Lexicon каждый день публикуются:
• вопросы с реальных интервью
• задачи для тренировки
• разборы ответов
📚 Полная тренировка интервью доступна на платформе:
🤖 AI-мок интервью
🧠 база вопросов по стеку
📊 разбор ваших ответов
Попробовать → https://lexiconium.ru
📢 Основной канал Lexicon
новости платформы, полезные материалы и навигация по всем каналам
👉 @lexicon_interview
Если нужно готовиться по другим направлениям, смотрите все каналы Lexicon 👇
🐹 Go — @lexicon_go
☕️ Java — @lexicon_java
⚛️ React — @lexicon_react
🅰️ Angular — @lexicon_angular
🐍 Python — @lexicon_python
📊 Системный аналитик — @lexicon_sa
🧪 QA — @lexicon_qa
💚 Vue — @lexicon_vue
В каналах Lexicon каждый день публикуются:
• вопросы с реальных интервью
• задачи для тренировки
• разборы ответов
📚 Полная тренировка интервью доступна на платформе:
🤖 AI-мок интервью
🧠 база вопросов по стеку
📊 разбор ваших ответов
Попробовать → https://lexiconium.ru
📢 Основной канал Lexicon
новости платформы, полезные материалы и навигация по всем каналам
👉 @lexicon_interview
Если нужно готовиться по другим направлениям, смотрите все каналы Lexicon 👇
🐹 Go — @lexicon_go
☕️ Java — @lexicon_java
⚛️ React — @lexicon_react
🅰️ Angular — @lexicon_angular
🐍 Python — @lexicon_python
📊 Системный аналитик — @lexicon_sa
🧪 QA — @lexicon_qa
💚 Vue — @lexicon_vue
Lexicon | Java вопросы pinned «🚀 Готовитесь к IT-собеседованиям? В каналах Lexicon каждый день публикуются: • вопросы с реальных интервью • задачи для тренировки • разборы ответов 📚 Полная тренировка интервью доступна на платформе: 🤖 AI-мок интервью 🧠 база вопросов по стеку 📊 разбор ваших…»
❓ Вопрос
Опишите, какие конкретные методы и метрики вы анализируете в VisualVM или YourKit, чтобы определить узкие места в работе сборщика мусора и как на основе этого меняете настройки JVM.
✅ Ответ
Для анализа сборщика мусора в VisualVM или YourKit используются метрики пауз GC (Pause Time), частота срабатываний, объём освобождаемой памяти и распределение поколений (Young/Old). Анализируются детали таких пауз, чтобы выявить долгие или частые сборки, вызывающие задержки. На основе этих данных корректируются параметры JVM, например, размеры heap, настройки GC алгоритма (G1, CMS и т.д.) или увеличение параллелизма, чтобы уменьшить задержки и повысить общую производительность приложения.
#lexicon #собеседование #java #senior #backend
Опишите, какие конкретные методы и метрики вы анализируете в VisualVM или YourKit, чтобы определить узкие места в работе сборщика мусора и как на основе этого меняете настройки JVM.
✅ Ответ
#lexicon #собеседование #java #senior #backend
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #middle #backend
🧠 Spring Profiles: активация через application.yml
Anonymous Quiz
100%
spring.profiles.active: prod в основном application.yml
0%
spring.profiles.include: dev в application-prod.yml
0%
spring.config.activate.on-profile: test в отдельном файле
Lexicon | Java вопросы
🧠 Spring Profiles: активация через application.yml
📘 Разбор опроса
Spring Profiles: активация через application.yml
Вопрос: Какой способ активации профиля в application.yml НЕ сработает при запуске через java -jar?
✅ Правильный ответ: spring.config.activate.on-profile: test в отдельном файле
1) Идея вопроса: Проверить понимание нюансов активации Spring профилей через конфигурационные файлы, особенно в контексте standalone-запуска. 2) Почему правильный вариант верный: Директива spring.profiles.include добавляет дополнительные профили к УЖЕ активному профилю. При запуске через java -jar без предустановленного активного профиля, файл application-prod.yml не будет загружен, поэтому include внутри него не выполнится. Это классическая ошибка порядка загрузки. 3) Почему остальные варианты неверные: Вариант 1 (spring.profiles.active в основном application.yml) - стандартный и рабочий способ. Вариант 3 (spring.config.activate.on-profile) - корректная аннотация для условной загрузки конфигурационных блоков в Spring Boot 2.4+. 4) Где ловушка: Ловушка в предположении, что spring.profiles.include может инициировать активацию профиля с нуля. На самом деле это инструмент для композиции профилей, а не для первичной активации. Особенно критично при деплое jar-файлов, где нет доступа к редактированию файлов после сборки. 5) Практический вывод: Для активации профиля при запуске jar используйте: аргумент командной строки (--spring.profiles.active), переменную окружения SPRING_PROFILES_ACTIVE или предустановленное значение в основном application.yml. Директиву include применяйте только для расширения уже активной конфигурации внутри профиле-специфичных файлов.
Spring Profiles: активация через application.yml
Вопрос: Какой способ активации профиля в application.yml НЕ сработает при запуске через java -jar?
✅ Правильный ответ: spring.config.activate.on-profile: test в отдельном файле
1) Идея вопроса: Проверить понимание нюансов активации Spring профилей через конфигурационные файлы, особенно в контексте standalone-запуска. 2) Почему правильный вариант верный: Директива spring.profiles.include добавляет дополнительные профили к УЖЕ активному профилю. При запуске через java -jar без предустановленного активного профиля, файл application-prod.yml не будет загружен, поэтому include внутри него не выполнится. Это классическая ошибка порядка загрузки. 3) Почему остальные варианты неверные: Вариант 1 (spring.profiles.active в основном application.yml) - стандартный и рабочий способ. Вариант 3 (spring.config.activate.on-profile) - корректная аннотация для условной загрузки конфигурационных блоков в Spring Boot 2.4+. 4) Где ловушка: Ловушка в предположении, что spring.profiles.include может инициировать активацию профиля с нуля. На самом деле это инструмент для композиции профилей, а не для первичной активации. Особенно критично при деплое jar-файлов, где нет доступа к редактированию файлов после сборки. 5) Практический вывод: Для активации профиля при запуске jar используйте: аргумент командной строки (--spring.profiles.active), переменную окружения SPRING_PROFILES_ACTIVE или предустановленное значение в основном application.yml. Директиву include применяйте только для расширения уже активной конфигурации внутри профиле-специфичных файлов.
❓ Вопрос
Как вы реализуете коллекции с ограничением на типы элементов с помощью дженериков? Покажите пример создания и использования такой коллекции.
✅ Ответ
Объясняется использование параметрических типов (дженериков) для создания коллекций, которые ограничивают типы элементов, обеспечивая безопасность типов на этапе компиляции. Показывается пример объявления коллекции с указанием типа, например, List<String>, и демонстрируется добавление и извлечение элементов без приведения типов. Подчеркивается, что дженерики позволяют избежать ClassCastException и улучшают читаемость кода.
#lexicon #собеседование #java #middle #backend
📚 4000+ вопросов для подготовки к IT-собеседованиям
Как вы реализуете коллекции с ограничением на типы элементов с помощью дженериков? Покажите пример создания и использования такой коллекции.
✅ Ответ
#lexicon #собеседование #java #middle #backend
📚 4000+ вопросов для подготовки к IT-собеседованиям
❓ Вопрос
Как реализовать фильтр в Spring Security для логирования деталей каждого входящего запроса, и где лучше размещать такой фильтр в цепочке? Расскажите на примере.
✅ Ответ
Для логирования деталей каждого входящего запроса в Spring Security создают кастомный фильтр, реализующий интерфейс Filter или расширяющий OncePerRequestFilter. В методе doFilter или doFilterInternal нужно получить информацию из HttpServletRequest, сделать логирование и вызвать цепочку фильтров через filterChain.doFilter. Такой фильтр рекомендуется регистрировать перед стандартным фильтром UsernamePasswordAuthenticationFilter, чтобы логировать запросы до аутентификации.
#lexicon #собеседование #java #middle #backend
📚 4000+ вопросов для подготовки к IT-собеседованиям
Как реализовать фильтр в Spring Security для логирования деталей каждого входящего запроса, и где лучше размещать такой фильтр в цепочке? Расскажите на примере.
✅ Ответ
#lexicon #собеседование #java #middle #backend
📚 4000+ вопросов для подготовки к IT-собеседованиям