Курс
Практика
Вопросы
Рейтинг
Поиск
/
Премиум
Войти
Поиск
/
Курс
Практика
Вопросы
Рейтинг
Премиум
Войти
/
Поиск по Java Hub
Начни вводить название темы, статьи, задания или вопроса.
Полный курс Java-разработчика
Базовый Java
Введение
О курсе
Возможности платформы
Основы Java
Первая программа
Переменные и типы
Операторы
Условия
Циклы
Методы
Массивы
Строки
ООП
Классы и объекты
Конструкторы и поля
Инкапсуляция
Наследование
Полиморфизм
Абстрактные классы и интерфейсы
Класс Object
Equals, hashCode и toString
Static и final
Вложенные классы
Enum
Исключения
Иерархия исключений
Try, catch и finally
Throw и throws
Checked и unchecked исключения
Собственные исключения
Try-with-resources
Практика работы с исключениями
Коллекции и обобщения
Обобщения
Иерархия Collection
List
Set
Queue и Deque
Map
ArrayList и LinkedList
HashMap
HashSet
Comparable и Comparator
Iterator и Iterable
Класс Collections
Stream API и Lambda
Lambda-выражения
Функциональные интерфейсы
Ссылки на методы
Основы Stream API
Промежуточные операции
Терминальные операции
Collectors
Optional
Примитивные стримы
Параллельные стримы
Дата и время
LocalDate, LocalTime и LocalDateTime
Instant и временные метки
ZoneId и ZonedDateTime
Duration и Period
DateTimeFormatter
Операции с датой и временем
Temporal API
Старый Date API
IO и NIO
File и Path
Байтовые потоки
Символьные потоки
Буферизированный ввод и вывод
Класс Files
Channels и Buffers
Сериализация
Ресурсы и try-with-resources
Аннотации и рефлексия
Основы аннотаций
Встроенные аннотации
Пользовательские аннотации
Retention и Target
Основы рефлексии
Class, поля и методы
Динамический доступ через Reflection
Ограничения и особенности рефлексии
JDBC
Основы JDBC
Connection
Statement и PreparedStatement
ResultSet
Транзакции JDBC
Batch-операции
Generated Keys
Пул соединений
JPA
Основы JPA
Entity
Жизненный цикл Entity
Связи между Entity
FetchType и загрузка данных
Каскадные операции
Persistence Context
JPQL
Транзакции JPA
N+1 проблема
Продвинутый Java
Многопоточность
Основы Thread
Runnable и Callable
ExecutorService
Future и CompletableFuture
Синхронизация
Lock и ReentrantLock
Concurrent Collections
Atomic-классы
Пулы потоков
Виртуальные потоки
JMM
Основы Java Memory Model
Видимость и атомарность
Happens-before
Volatile
Семантика памяти synchronized
Final-поля и безопасная публикация
Переупорядочивание инструкций
Data Race и Race Condition
JVM
Архитектура JVM
Загрузка классов
ClassLoader
Области памяти JVM
Stack и Heap
Сборка мусора
Алгоритмы GC
JIT-компиляция
Bytecode
Мониторинг и диагностика JVM
Тестирование
Основы тестирования
JUnit
Assertions
Параметризованные тесты
Mockito
Mock и Spy
Unit и Integration тесты
Testcontainers
Практики тестирования
Сборка проекта
Инструменты сборки
Maven
Gradle
Зависимости
Жизненный цикл сборки
Плагины
Многомодульные проекты
Артефакты сборки
Паттерны проектирования
Основы паттернов проектирования
Порождающие паттерны
Singleton
Factory Method
Abstract Factory
Builder
Prototype
Структурные паттерны
Adapter
Bridge
Composite
Decorator
Facade
Proxy
Поведенческие паттерны
Chain of Responsibility
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Template Method
Visitor
Базовый Spring
Введение
О курсе
Возможности платформы
Spring Core
IoC и Dependency Injection
ApplicationContext
Spring Beans
Жизненный цикл Bean
Bean Scopes
Component Scanning
Java Configuration
BeanPostProcessor
События Spring
Spring AOP
Прокси в Spring
Spring Boot
Основы Spring Boot
Starters
Auto-configuration
Конфигурация приложения
Configuration Properties
Profiles
Logging
Actuator
Запуск приложения
Spring MVC
Основы Spring MVC
DispatcherServlet
Controllers
Request Mapping
Параметры запроса
RequestBody и ResponseBody
REST Controllers
Валидация
Обработка исключений
Filters и Interceptors
HttpMessageConverters
Spring Data JDBC
Основы Spring Data JDBC
Repositories
CrudRepository
Маппинг сущностей
Запросы
Пользовательские запросы
Связи и агрегаты
Auditing
Spring Data JPA
Repositories
JpaRepository
Derived Queries
@Query
Pagination и Sorting
Specifications
Projections
Auditing
Продвинутый Spring
Транзакции
Основы транзакций
@Transactional
TransactionManager
Propagation
Isolation
Rollback
Read-only транзакции
Транзакции и Spring Proxy
Проблема Self Invocation
Программные транзакции
Spring Security
Основы Spring Security
SecurityFilterChain
Authentication
Authorization
UserDetailsService
PasswordEncoder
Session Authentication
CSRF
CORS
Method Security
JWT
OAuth2
Spring Testing
Spring Test
Spring Boot Test
@SpringBootTest
TestContext
MockMvc
@WebMvcTest
@DataJpaTest
Интеграционные тесты
Spring Cloud
Основы Spring Cloud
Spring Cloud Config
OpenFeign
Service Discovery
Spring Cloud Gateway
Circuit Breaker
Базовый SQL
Введение
О курсе
Возможности платформы
Основы SQL
Синтаксис SQL
Типы данных
DDL
DML
SELECT
Ограничения
Primary Key и Foreign Key
NULL
Фильтрация и сортировка
WHERE
Операторы сравнения
AND, OR и NOT
IN, BETWEEN и LIKE
IS NULL и IS NOT NULL
ORDER BY
LIMIT и OFFSET
Агрегация
Агрегатные функции
COUNT
SUM, AVG, MIN и MAX
GROUP BY
HAVING
Группировка по нескольким столбцам
Joins
Основы JOIN
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
CROSS JOIN
SELF JOIN
Несколько JOIN
Подзапросы
Подзапросы
Скалярные подзапросы
Подзапросы в WHERE
EXISTS и NOT EXISTS
Коррелированные подзапросы
CTE
Recursive CTE
Продвинутый SQL
Индексы
Основы индексов
B-tree индексы
Unique Index
Составные индексы
Порядок колонок в индексе
Покрывающие индексы
Когда индекс не используется
Транзакции и ACID
Основы транзакций
BEGIN, COMMIT и ROLLBACK
Atomicity
Consistency
Isolation
Durability
Savepoints
Уровни изоляции
Аномалии конкурентного доступа
Dirty Read
Non-repeatable Read
Phantom Read
Read Uncommitted
Read Committed
Repeatable Read
Serializable
Блокировки и Deadlocks
Основы блокировок
Shared и Exclusive Locks
Row и Table Locks
Явные блокировки
SELECT FOR UPDATE
Deadlocks
Предотвращение Deadlock
Нормализация
Основы нормализации
Функциональные зависимости
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
BCNF
Денормализация
Оптимизация
Выполнение SQL-запроса
EXPLAIN
EXPLAIN ANALYZE
План выполнения
Seq Scan и Index Scan
Алгоритмы JOIN
Переписывание запросов
Практика оптимизации
Базовые алгоритмы
Введение
О курсе
Возможности платформы
Основы алгоритмов
Полный перебор
Подсчёт
Минимум и максимум
Работа с цифрами числа
Делимость
Математические задачи
Big O
Основы сложности
Временная сложность
Пространственная сложность
Основные классы сложности
Амортизированная сложность
Best, Average и Worst Case
Массивы
Основы массивов
Обход массива
Два указателя
Скользящее окно
Префиксные суммы
Операции In-place
Матрицы
Строки
Основы строк
Подсчёт символов
Два указателя
Скользящее окно
Палиндромы
Анаграммы
Задачи на подстроки
Связные списки
Основы связных списков
Односвязный список
Двусвязный список
Быстрый и медленный указатели
Разворот связного списка
Поиск цикла
Слияние связных списков
Хеш-таблицы
Основы хеш-таблиц
Хеш-функции
Коллизии
Hash Map
Hash Set
Frequency Map
Паттерны быстрого поиска
Стеки и очереди
Stack
Queue
Deque
Монотонный стек
Монотонная очередь
Задачи на скобки
Очередь через стеки
Сортировка
Основы сортировки
Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Quick Sort
Counting Sort
Стабильность сортировки
Бинарный поиск
Основы бинарного поиска
Поиск в отсортированном массиве
Lower Bound и Upper Bound
Первая и последняя позиция
Сдвинутый отсортированный массив
Бинарный поиск по ответу
Продвинутые алгоритмы
Рекурсия
Основы рекурсии
Базовый случай
Стек вызовов
Дерево рекурсии
Разделяй и властвуй
Рекурсия и итерация
Деревья
Основы деревьев
Бинарное дерево
Binary Search Tree
DFS
BFS
Обходы дерева
Высота и глубина дерева
Lowest Common Ancestor
Графы
Основы графов
Представление графа
DFS
BFS
Компоненты связности
Поиск циклов
Топологическая сортировка
Кратчайший путь
Backtracking
Основы Backtracking
Дерево решений
Подмножества
Перестановки
Комбинации
Задачи с ограничениями
Жадные алгоритмы
Основы жадных алгоритмов
Жадный выбор
Задачи на интервалы
Выбор активностей
Greedy и Dynamic Programming
Когда работает жадный алгоритм
Динамическое программирование
Основы Dynamic Programming
Memoization
Tabulation
Состояние DP
Переходы DP
Одномерное DP
Двумерное DP
Оптимизация памяти DP
Базовый System Design
Введение
О курсе
Возможности платформы
Основы System Design
Процесс проектирования
Функциональные требования
Нефункциональные требования
Latency и Throughput
Доступность и надёжность
Stateless и Stateful
Архитектурные компромиссы
Оценка нагрузки
Основы оценки нагрузки
RPS и QPS
Пиковая нагрузка
Оценка объёма хранения
Оценка пропускной способности
Приближённые расчёты
Компоненты системы
DNS
CDN
Reverse Proxy
Load Balancer
API Gateway
Application Server
Service Discovery
Хранение данных
Требования к хранилищу
SQL vs NoSQL
Реляционные базы данных
Key-Value хранилища
Документные базы данных
Колоночные базы данных
Object Storage
Выбор хранилища
Кэширование
Основы кэширования
Cache-Aside
Read-Through
Write-Through
Write-Back
TTL и вытеснение
Инвалидация кэша
Распределённый кэш
Взаимодействие сервисов
Основы взаимодействия сервисов
Синхронное взаимодействие
Асинхронное взаимодействие
REST
gRPC
Messaging
Request-Response
Publish-Subscribe
Идемпотентность
Монолит и микросервисы
Монолит
Модульный монолит
Основы микросервисов
Декомпозиция сервисов
Границы сервисов
Database per Service
Переход к микросервисам
Компромиссы микросервисов
Продвинутый System Design
Распределённые системы
Основы распределённых систем
Репликация
Партиционирование
Модели отказов
Распределённая координация
Выбор лидера
Консенсус
Время и порядок событий
Масштабирование
Основы масштабирования
Вертикальное и горизонтальное масштабирование
Масштабирование stateless-сервисов
Балансировка нагрузки
Масштабирование баз данных
Read Replicas
Шардинг
Hotspots
Автомасштабирование
Данные и согласованность
Владение данными
Модели согласованности
Strong Consistency
Eventual Consistency
Quorum
Распределённые транзакции
Two-Phase Commit
Saga
Синхронизация данных
Event-Driven Architecture
Основы Event-Driven Architecture
События
Брокеры событий
Event Streaming
Гарантии доставки
Порядок событий
Event Sourcing
CQRS
Transactional Outbox
Надёжность и отказоустойчивость
Основы надёжности
Timeout
Retry и Backoff
Circuit Breaker
Bulkhead
Rate Limiting
Отказоустойчивость
Graceful Degradation
Health Checks
Наблюдаемость
Основы наблюдаемости
Логирование
Метрики
Distributed Tracing
Correlation ID
Алертинг
SLI, SLO и SLA
Реагирование на инциденты
Безопасность систем
Основы безопасности
Аутентификация
Авторизация
TLS
Управление секретами
Сетевая безопасность
Шифрование данных
Threat Modeling
Проектирование систем
Алгоритм решения System Design
URL Shortener
Pastebin
Система уведомлений
Чат
Лента новостей
Файловое хранилище
Видеостриминг
Сервис такси
Разбор архитектурного решения