Подборка объединяет вопросы, отмеченные на этапах интервью в Dion. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: mobile, android, theory.
Виды сильных и слабых ссылок в JVM и сценарии их применения Сильные ссылки (Strong references) обычный, классический механизм ссылок в Java пока существует сильная ссылка, сборщик мусора не удаляет объект по умолчанию…
Какие инструменты использовать для поиска утечек памяти в Android? Android Profiler — встроенный в Android Studio инструмент наблюдения за памятью LeakCanary — библиотека, автоматически выявляющая утечки MAT (Memory…
Механизмы синхронизации в корутинах Корутинa в Go — это легковесный поток, однако при обращении к общим ресурсам ей необходима синхронизация Mutex обеспечивает взаимное исключение: он блокирует участок кода и не…
Операторы обработки ошибок во Flow Flow представляет собой статический типизатор для JavaScript и не содержит традиционных операторов обработки исключений. Flow обнаруживает ошибки во время статического анализа, а не…
Какими способами можно создать Flow? Flow представляет собой типизированный поток данных (JS/типизация) Автоматическая типизация задаётся через аннотации (// @flow, type, interface) Для ленивых вычислений применяют…
В каких случаях использовать WorkManager, а в каких — Service? WorkManager выбирают для отложенных и гарантированно выполняемых задач, которые должны завершиться даже после перезагрузки устройства WorkManager умеет…
В Kotlin data class предназначен для хранения данных Прямое наследование data class запрещено Наследоваться можно от обычных классов, но не от другого data class Вместо этого применяют composition (композицию)…
Чем sealed-классы отличаются от enum и как работают их конструкторы? sealed-классы задают тип с ограниченным набором подклассов и обеспечивают контроль иерархии enum представляет специализированный класс с…
Что представляет собой лямбда-выражение в Kotlin? значение функционального типа и компактная форма записи функции анонимная функция без имени и заранее заданного inline-тела принимает параметры и возвращает результат…
Контекст: управление отменой в Kotlin Coroutines Когда родительская корутина отменяется, все её дочерние корутины также автоматически переходят в состояние отмены Причина заключается в устройстве иерархии Job: именно…
Что представляет собой BroadcastReceiver и как увеличить время его работы? Компонент Android, принимающий системные и пользовательские трансляции (broadcasts) События обрабатываются в методе onReceive(), который…
Асинхронный поток значений Представляет собой cold stream: генерация данных начинается только после подписки Поддерживает реактивный подход к программированию Даёт возможность эмитировать последовательность значений с…