На странице собраны вопросы по Java — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, database, optimization.
Как создавать и применять кастомные запросы в Hibernate? Hibernate — ORM для Java, который упрощает взаимодействие приложения с базой данных. Кастомные запросы применяю, когда нужную сложную выборку нельзя выразить…
Stream API — инструмент Java для обработки коллекций группировка выполняется методом Collectors.groupingBy() метод получает функцию классификации (keyMapper) результатом становится Map с ключами и перечнями элементов…
Интеграция с security-слоем заказчика (Централизованный логин, токены) security-слой выступает централизованным сервисом аутентификации и авторизации для входа применяются протоколы OAuth2/OpenID Connect после…
Использовать Spring AOP — аспектно-ориентированный подход для перехвата вызовов Создать аспект с аннотацией @Around и применить его к целевым методам Зафиксировать System.nanoTime() непосредственно перед вызовом и…
Защита приложения от MITM сетевой контекст и безопасность передачи данных шифрование каналов с помощью TLS/SSL проверка сертификатов (PKI) с использованием pinning принудительное применение HTTPS через HSTS контроль…
Как обновлять захардкоженный список наград без передеплоя приложения? конфигурация через properties — файл входит в состав билда и связан с ним для внесения изменений требуется рестарт/деплой приложения внешний сервис…
Обмен данными выполняется по асинхронному протоколу Для передачи используются очереди (queue) либо топики (publish-subscribe) Микросервисы отправляют сообщения в брокер и подписываются на нужные события Поддерживаются…
Как применять Optional вместо проверок на null? Optional представляет собой контейнер, в котором может находиться значение либо пустота Он применяется вместо null, помогая предотвращать NPE Основные методы:…
Как исправить использование CountDownLatch с неатомарным счётчиком? проблема: счётчик не является атомарным, поэтому возникают состояния гонки решение 1: использовать AtomicInteger вместо обычного счётчика (если это…
SQL-запрос и выборка данных чем больше полей, тем больше данных передаётся: растёт объём в байтах и сетевой трафик увеличение числа полей повышает нагрузку на I/O и сеть сложные типы данных, например LOB и TEXT, могут…
Контейнеризация Java-приложений с помощью Docker Docker представляет собой платформу для изоляции приложений внутри контейнеров Сначала создают Dockerfile, в котором выбирают базовый образ, как правило openjdk В…