Kotlin | Тесты
1.54K subscribers
24 photos
336 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Вопросы собесов t.me/+OOb6zFa_-Oo3NjZi
Задачи t.me/+CVnW0MJk6xZjZDc6
Вакансии t.me/+KuGNaHeKkQg1NzAy
Download Telegram
🤔 Как описать жизненный цикл composable функции?

Жизненный цикл composable функции начинается с вызова и создания UI, затем проходит через стадии "recomposition" (обновления при изменении состояния) и завершения (удаление из дерева). Compose управляет этим процессом автоматически, основываясь на состоянии и действиях пользователя.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
🤔 Какой механизм в Kotlin позволяет реализовать собственное управление памятью для объектов?
Anonymous Quiz
53%
Использование `WeakReference`
13%
Применение кастомных аллокаторов
27%
Реализация через `ManualMemoryControl`
💊1
🤔 Каковы особенности использования модификатора `inline` в Kotlin, и как это влияет на производительность вызовов функций?
Anonymous Quiz
12%
Уменьшает количество создаваемых объектов
29%
Позволяет избежать накладных расходов на вызовы функций
5%
Увеличивает размер скомпилированного кода
54%
Все вышеперечисленные
💊5
🤔 Где создается композиция для вызова composable функции?

Композиция создаётся внутри функции setContent, которая задает точку входа для composable функций в Activity или Fragment. Она инициирует рендеринг интерфейса и управление состоянием.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
🤔 Как можно в Kotlin управлять версиями зависимостей в модульных проектах для предотвращения конфликтов?
Anonymous Quiz
74%
Использование Gradle version catalog
9%
Применение Maven BOMs
6%
Использование строгой версификации
🤔 В ситуации, когда функция должна перерисоваться, как Compose понимает, что нужно перерисовывать только некоторые детали?

Compose использует механизм "recomposition", который отслеживает изменения состояния. Если состояние изменилось, перерабатывается только та часть интерфейса, которая связана с изменёнными данными, минимизируя затраты на перерисовку.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
👍1💊1
🤔 Как можно в Kotlin создать функцию, которая принимает неопределенное количество параметров одного типа?
Anonymous Quiz
89%
Используя ключевое слово `vararg` перед типом параметра
6%
Применяя список `List` в качестве параметра
3%
Объявляя параметр как массив
3%
Применяя специальный синтаксис `params`
🤔 Откуда происходит повторный вызов composable функции?

Повторный вызов происходит из механизма "recomposition". Compose автоматически вызывает функцию снова, если состояние, связанное с этой функцией, изменилось.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🤔 Какой подход поможет избежать дублирования кода при реализации одинакового функционала в нескольких классах Kotlin?
Anonymous Quiz
14%
Использование паттерна "Стратегия"
70%
Применение наследования или абстрактных классов
4%
Размещение кода в статических методах
12%
Внедрение зависимостей через конструкторы
💊2
🤔 Что известно про stable?

Это аннотация в Compose, которая указывает, что объект стабилен и его свойства не изменяются спонтанно. Это помогает Compose эффективно определять, когда нужно перерисовывать UI, уменьшая количество лишних перерисовок.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
🤔 Как можно в Kotlin обеспечить, что объект будет уничтожен и собран сборщиком мусора как можно скорее?
Anonymous Quiz
8%
Используя ключевое слово `weak`
55%
Применяя `WeakReference` для объекта
25%
Устанавливая все ссылки на объект в `null`
13%
Реализуя `finalize` метод
💊6
🤔 Что известно про coroutine builders?

Это функции, которые создают новую корутину и управляют ее выполнением.
Основные виды:
- launch {} – запускает корутину без возврата результата.
- async {} – возвращает Deferred<T> (фьючерс), который можно await().
- runBlocking {} – блокирует поток, пока корутина не выполнится.
- withContext {} – переключает контекст выполнения, но не создает новую корутину.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
💊1
💊20🤔1🤯1👀1
🤔 Кроме отмены корутины, что еще можно сделать с помощью Job?

Это управляющий объект корутины.
Помимо отмены (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