Подборка объединяет вопросы, отмеченные на этапах интервью в Сбер. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, sql, backend.
Механизмы управления памятью Стек: быстрое автоматическое выделение и освобождение при ограниченном объёме Куча: динамическое выделение, требующее контроля освобождения и обычно работающее медленнее Сборщик мусора…
Какие области памяти есть кроме стека и кучи Data (Data Segment) — сегмент для глобальных и статических переменных, который создаётся во время загрузки программы BSS (Block Started by Symbol) — часть Data Segment,…
Контекст: Java Stream API и параллельная обработка коллекций Параллельные стримы выполняются через ForkJoinPool.commonPool() Для маленьких коллекций они часто неэффективны из-за накладных расходов С точки зрения…
Ошибки при работе с памятью Утечки памяти — ресурсы не освобождаются, из-за чего потребление памяти постоянно растёт Двойное освобождение — повторный вызов free/ delete приводит к неопределённому поведению…
Преимущества Kotlin перед Java современный статически типизированный язык для JVM корутины для удобной реализации асинхронного кода лаконичный и выразительный синтаксис (type inference, data class) встроенный на этапе…
Orbit.MVI представляет собой архитектурную библиотеку для Kotlin/Multiplatform В её основе лежит паттерн Model-View-Intent (MVI) с однонаправленным движением данных Библиотека помогает реализовать предсказуемое и…
Примитивы синхронизации: synchronized, Atomic, семафоры synchronized блокирует метод или отдельный блок кода и обеспечивает взаимное исключение (mutex). Примитив удобен, однако при неправильном применении может…
архитектурный стиль, применяемый при создании веб-сервисов семантическое использование HTTP-методов: GET отвечает за чтение, POST — за создание, PUT/PATCH — за обновление, DELETE — за удаление идемпотентность методов:…
Промежуточные и терминальные операции Stream API Stream API представляет собой конвейер для обработки данных в Java Промежуточные операции — ленивые методы, возвращающие Stream и позволяющие последовательно…
Риски Dispatchers.Unconfined и сценарий падения Dispatchers.Unconfined — специальный диспетчер корутин, который начинает выполнение в текущем потоке и работает в нём до первой приостановки. Сразу другой поток он не…
Способы разрешения коллизий в хэш-таблицах Открытая адресация: свободная позиция подбирается прямо внутри массива варианты: линейное и квадратичное пробирование, а также двойное хеширование Цепочки (chaining):…
Стратегии генерации первичных ключей Автогенерация (AUTO_INCREMENT, SERIAL) — простой последовательный способ UUID/GUID — глобально уникальные идентификаторы без единого центра управления Композитные ключи —…