Подборка объединяет вопросы, отмеченные на этапах интервью в LifePay. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: async, concurrency, mobile.
память и синхронизация/Java concurrency volatile делает изменения видимыми для других потоков, однако не гарантирует атомарность операций Atomic-переменные выполняют атомарные операции — чтение, запись и инкремент —…
оба представляют собой горячие потоки Kotlin Coroutines StateFlow предназначен для хранения и эмиссии текущего состояния (value) StateFlow обязательно имеет начальное значение и предоставляет каждому активному…
при изменении конфигурации — например, ориентации, языка или параметров экрана — система перезапускает Activity перед этим вызывается onSaveInstanceState() для сохранения текущего состояния после чего Activity…
Как StateFlow работает с несколькими подписчиками? Kotlin Flow для реактивного состояния StateFlow — горячий поток, который постоянно хранит последнее значение При подписке каждый подписчик сразу получает актуальное…
Механизм синхронизации Java для управления потоками Каждый из этих методов можно вызывать только внутри блока synchronized wait() — поток освобождает монитор объекта и переходит в состояние ожидания notify() — выводит…
Как корректно отменять корутины и какие средства для этого применяются? Управление корутинами в Kotlin/Coroutine строится вокруг контекста отмены Отмена передаётся по иерархии контекстов: при отмене родителя…
Как не потерять состояние приложения при изменении конфигурации? область: мобильная разработка (Android) конфигурация включает поворот экрана, смену языка и ресурсов Android пересоздаёт Activity, поэтому состояние UI…
Изменение конфигурации: какие события к нему относятся? это изменение глобальных настроек приложения изменение языка интерфейса и параметров локализации переключение темы оформления между светлой и тёмной настройка…
Отличия <? extends T> от <? super T> обобщённые типы в Java значения из такого контейнера можно безопасно читать, но добавление запрещено объекты типа T можно безопасно добавлять, а при чтении типом результата будет…
Синхронизация в Java — способ защитить критическую секцию synchronized блокирует один монитор (объект) в каждый момент монитор удерживает только один поток, который выполняет критическую секцию остальные потоки…
StateFlow без подписчиков: как он работает StateFlow в Kotlin — горячий поток для хранения и управления состоянием Может работать при наличии 0 подписчиков и не выдаёт ошибок Текущее состояние постоянно сохраняется в…
Что будет с корутиной в GlobalScope после cancel() родительского скоупа? Корутинa в GlobalScope — выполняется вне иерархии скоупов GlobalScope не зависит от родительских скоупов Вызов cancel() у родителя не оказывает…