Anonymous Quiz
92%
Null Safety
5%
NullPointerException
3%
Smart Casts
0%
Type Erasure
- private — для инкапсуляции данных внутри класса;
- protected — если нужно разрешить доступ наследникам и классам в пакете;
- public — для API, доступного извне;
- package-private (без модификатора) — для доступа внутри одного пакета.
Лучше всего ограничивать доступ настолько, насколько это возможно.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
31%
fun printElement(element: T) { println(element) }
9%
fun printElement(element: T) { println(element) }
57%
fun printElement(element: Any) { println(element) }
3%
fun printElement(element: T) { println(element) }
💊26🤔5
Anonymous Quiz
7%
Использовать mutableListOf()
5%
Использовать arrayListOf()
83%
Использовать listOf()
5%
Использовать linkedListOf()
- Жестовое управление.
- Поддержка ML Kit и нейросетевых API.
- Adaptive Battery и Adaptive Brightness.
- App Actions и предиктивные предложения.
- Поддержка notch-экранов (Display Cutout).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
17%
Random
40%
Math.random()
41%
SecureRandom
2%
RandomGenerator
Anonymous Quiz
87%
fun myFunction(vararg args: Int)
6%
fun myFunction(args...: Int)
5%
fun myFunction(args: Array)
3%
fun myFunction(*args: Int)
Да, технически можно, но не рекомендуется. Handler сам по себе не предназначен для сетевых операций — он просто ставит задачи в очередь выбранного потока. Чтобы делать запрос в сеть:
- Нужно создать HandlerThread и использовать Handler, привязанный к нему.
- Но лучше использовать Coroutines, RxJava или OkHttp с колбэками, так как они дают гораздо более чистый и безопасный подход.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
36%
Использовать WeakHashMap
32%
Применять SoftReference для хранения элементов
21%
Очищать коллекцию методом clear()
10%
Использовать ключевое слово transient для элементов коллекции
Anonymous Quiz
9%
private, protected, public
85%
internal, private, protected, public
3%
internal, public
4%
private, public
Она разделяет логику на независимые уровни: домен, данные, представление. Это делает код легко тестируемым, масштабируемым и гибким для изменений без каскадных изменений в других слоях.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3💊1
Anonymous Quiz
6%
4
92%
5
2%
6
1%
7
Anonymous Quiz
44%
Использовать MainScope().launch { try { ... } catch (e: Exception) { ... } }
32%
Использовать withContext(Dispatchers.Main) { ... }
15%
Использовать GlobalScope.launch(Dispatchers.Main) { ... }
10%
Использовать runBlocking { ... }
– Частые GC-сборки,
– UI-операции в главном потоке,
– Утечки памяти,
– Избыточные redraw,
– Сложные layout-структуры,
– Постоянные обращения к диску или сети без кеша.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Anonymous Quiz
17%
Использовать наследование для расширения классов.
28%
Применять функции расширения для добавления новых методов.
18%
Использовать классы-оболочки с внедрением зависимостей через конструктор.
37%
Все перечисленные методы подходят.
💊1
Anonymous Quiz
16%
С помощью наследования
8%
Используя паттерн декоратор
73%
Создание функции расширения
2%
Прямое изменение исходного класса
Чистая архитектура, модульность, покрытие юнит-тестами, изоляция бизнес-логики, внедрение зависимостей, а также использование моков и интерфейсов — всё это упрощает поддержку, тестирование и масштабирование. Также помогает документация и CI/CD процессы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Anonymous Quiz
68%
Использовать private set
13%
Использовать internal set
13%
Использовать protected set
6%
Использовать public set
Anonymous Quiz
56%
channel
21%
single
3%
broadcast
20%
flow
Да, есть.
- В launch {} ошибка автоматически передается вверх и может быть обработана CoroutineExceptionHandler.
- В async {} ошибки НЕ передаются автоматически, они остаются внутри Deferred<T>.
- Чтобы поймать ошибку в async {}, нужно вызвать await() внутри try-catch.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
55%
[[1, 2, 3], [3, 4, 5], [5, 6, 7], [7, 8, 9], [9, 10]]
18%
[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7]]
17%
[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10]]
11%
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]