Anonymous Quiz
14%
Использование паттерна "Стратегия"
70%
Применение наследования или абстрактных классов
4%
Размещение кода в статических методах
12%
Внедрение зависимостей через конструкторы
💊2
Это аннотация в Compose, которая указывает, что объект стабилен и его свойства не изменяются спонтанно. Это помогает Compose эффективно определять, когда нужно перерисовывать UI, уменьшая количество лишних перерисовок.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Anonymous Quiz
58%
Используя `try-catch` блоки внутри корутин
9%
Применяя паттерн "Обсервер" для перехвата ошибок
8%
Используя монады и функции `map` и `flatMap`
25%
Реализуя пользовательские обработчики через `handleError`
💊1
Anonymous Quiz
8%
Используя ключевое слово `weak`
55%
Применяя `WeakReference` для объекта
25%
Устанавливая все ссылки на объект в `null`
13%
Реализуя `finalize` метод
💊6
Это функции, которые создают новую корутину и управляют ее выполнением.
Основные виды:
- launch {} – запускает корутину без возврата результата.
- async {} – возвращает Deferred<T> (фьючерс), который можно await().
- runBlocking {} – блокирует поток, пока корутина не выполнится.
- withContext {} – переключает контекст выполнения, но не создает новую корутину.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Anonymous Quiz
17%
Используя атомарные переменные для контроля вызовов
53%
Применяя делегат `lazy` с параметром `SYNCHRONIZED`
16%
Реализуя блокировку на уровне функции
14%
Используя `volatile` переменные для хранения состояния вызова
💊1
Anonymous Quiz
80%
Обертывание кода в блок `try-catch`
17%
Применение функции `runCatching`
2%
Использование специальных аннотаций для обработки исключений
1%
Применение модификатора `safe` перед блоком кода
💊20🤔1🤯1👀1
Это управляющий объект корутины.
Помимо отмены (cancel()), через Job можно:
1. Отслеживать завершение (join()) – приостанавливает выполнение, пока корутина не завершится.
2. Проверять статус (isActive, isCompleted, isCancelled) – можно динамически реагировать.
3. Создавать иерархию задач – дочерние корутины зависят от родительского Job.
4. Объединять с Timeout – можно ограничивать выполнение (withTimeout, withTimeoutOrNull).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Anonymous Quiz
46%
Объявляя функцию, которая возвращает другую функцию
38%
Использование лямбда-выражений внутри функции
7%
Применение функционального интерфейса
9%
Использование ключевых слов `fun` и `return`
💊10🤔3
Anonymous Quiz
94%
Потому что он принудительно преобразует nullable тип в non-nullable
2%
Потому что это замедляет работу приложения
3%
Потому что это усложняет чтение кода
1%
Потому что он несовместим с большинством API Kotlin
Это объект управления корутиной, который:
- Хранит состояние корутины (активна, завершена, отменена).
- Связан с родительским контекстом (child-parent Job).
- Позволяет управлять жизненным циклом (отмена, ожидание завершения).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Anonymous Quiz
6%
private
14%
protected
79%
internal
1%
public
🤔2👍1
Anonymous Quiz
79%
listOf(1)
4%
setOf(1)
5%
mutableListOf(1)
12%
arrayOf(1)
💊10🤯2👀1
1. Try-catch внутри launch {} или async {} – локальная обработка ошибок.
2. CoroutineExceptionHandler – глобальная обработка в launch, но не работает с async.
3. supervisorScope {} – дочерние корутины не завершают родительский scope при ошибке.
4. try-catch вокруг await() – обработка исключений из async.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Anonymous Quiz
3%
Компиляция успешно пройдет
2%
Значение переменной будет изменено
94%
Произойдет ошибка компиляции
1%
Переменная станет `var`
Anonymous Quiz
81%
super()
13%
this()
3%
base()
2%
parent()
Да, есть.
- В launch {} ошибка автоматически передается вверх и может быть обработана CoroutineExceptionHandler.
- В async {} ошибки НЕ передаются автоматически, они остаются внутри Deferred<T>.
- Чтобы поймать ошибку в async {}, нужно вызвать await() внутри try-catch.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Anonymous Quiz
54%
intArrayOf(1, 2, 3)
8%
arrayOfInt(1, 2, 3)
30%
Array<Int>(1, 2, 3)
8%
List<Int>(1, 2, 3)
👍1
Anonymous Quiz
8%
clone()
86%
copy()
3%
replicate()
3%
duplicate()
Оба создают новый scope, но различие в обработке ошибок:
- coroutineScope {} – если одна дочерняя корутина упадет, отменяются все остальные.
- supervisorScope {} – если одна корутина упадет, остальные продолжают работу.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2