На странице собраны вопросы по Java — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, database, optimization.
Как различаются JOIN на уровне множеств JOIN — объединение таблиц по ключевым значениям INNER JOIN — пересечение множеств: возвращаются только общие строки LEFT JOIN — сохраняет все строки слева и дополняет их данными…
Сопоставление требований к свежести данных с допустимым периодом их устаревания Определение того, насколько часто источник выполняет обновление данных Поиск компромисса между нагрузкой на базу и эффективностью кэша:…
Как определить индексы, необходимые для оптимизации? Анализирую нагрузку: начинаю с наиболее часто выполняемых запросов и изучаю их планы выполнения с помощью EXPLAIN/ANALYZE Выявляю столбцы, используемые для…
Оптимизация SQL-запроса для постов пользователей с >500 подписчиками контекст: оптимизация запросов с использованием join и фильтрацией NULL создать индексы для колонок, участвующих в фильтрации и соединении, например…
распределённое кэширование общих данных, доступных нескольким сервисам Redis — in-memory хранилище с низкой задержкой для изоляции доменов применяем ключи с префиксами для автоматического удаления устаревших данных…
Асинхронная передача сообщений через очередь Обработка с гарантией доставки один раз (at-least-once / exactly-once — в зависимости от реализации) Централизованное хранение событий с уникальными метками Разделение…
Как лучше передавать Dispatcher в классы: через DI или напрямую? Контекст: архитектура приложения и инверсия зависимостей DI-передача делает зависимости явными и управляемыми упрощает подмену зависимостей и…
Spring Framework, управление компонентами ApplicationContext — это контейнер Spring, в котором хранятся бины Для получения бина применяется метод getBean() По имени: getBean("beanName") По типу:…
Как обеспечить уникальность записей без DISTINCT? агрегатные функции с GROUP BY — объединение строк по ключам оконные функции (ROW_NUMBER(), RANK()) с последующей фильтрацией по порядковому номеру подзапросы с…
Как документировать API микросервисов с помощью Swagger/OpenAPI? — стандарт OpenAPI для описания REST API в формате YAML/JSON — интерактивная документация, создаваемая автоматически (Swagger UI) — валидация API и…
Чтобы запустить поток, вызовите у объекта Thread метод start() Метод start() создаёт новый системный поток операционной системы и запускает его Метод run() является обычным методом и выполняется в том потоке, из…
защита конфиденциальности и безопасность данных на уровне логгера или middleware определить чувствительные поля: пароли, токены и ПДн заменить исходные значения шаблонами: ****, hash или partial mask применять готовые…