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

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

Использовать ключевое слово synchronized — оно не даёт методу быть вызванным из двух потоков одновременно. Можно также использовать блокировки (Lock) или атомарные типы (AtomicInteger).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
🤔 Как происходит составление хешмапы, если совпадает хеш-код?

В хешмапе, когда два ключа имеют одинаковый хеш-код (коллизия), выполняется разрешение коллизий:
1. Связанные списки (Chaining): элементы с одинаковым хеш-кодом хранятся в одном bucket'е в виде связанного списка.
2. Открытая адресация (Open Addressing): используется поиск следующей свободной ячейки (линейный или квадратичный).
3. Деревья: современные реализации, такие как HashMap в Java 8+, используют сбалансированные деревья для оптимизации поиска при высоком числе коллизий.
Каждый ключ проверяется методом equals для точного соответствия.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🤔 Какой результат выполнения выражения "Hello".getOrElse(10) { '!' }?
Anonymous Quiz
2%
o
2%
H
23%
null
73%
!
🤔 Как можно в Kotlin выполнить код, зависящий от конкретной реализации интерфейса, если объект этого интерфейса?
Anonymous Quiz
69%
Используя smart cast и проверку типа с is
12%
Применяя прямое приведение типов
16%
Вызывая специализированные функции интерфейса
3%
Используя паттерн Visitor
💊3🤔1
🤔 Что такое ProGuard?

ProGuard — это инструмент для:
- Минификации (сжатие имён классов, методов и полей),
- Удаления неиспользуемого кода,
- Обфускации (затруднение обратной декомпиляции кода).
В Android он часто используется в прод-сборках для защиты кода и уменьшения размера APK.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🤔 Какой результат выполнения выражения val result = listOf(1, 2, 3, 4).none { it < 0 }?
Anonymous Quiz
64%
true
19%
false
10%
null
7%
Ошибка компиляции
🤔 Какое ключевое слово используется для задания блока инициализации?
Anonymous Quiz
6%
constructor
94%
init
1%
static
0%
setup
🤔 Если domain-слой не зависит от других слоёв, то как он взаимодействует с data-слоем?

Это достигается за счёт внедрения зависимостей (Dependency Inversion Principle):
- Domain-слой знает только об интерфейсах, например, UserRepository.
- Data-слой реализует эти интерфейсы, но уже зависит от domain.
- На этапе инициализации (DI) связываются реализации и абстракции.
Таким образом, направление зависимости переворачивается, и domain остаётся независимым.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊7🔥2👍1
🤔 Какой из приведенных типов нельзя использовать в when выражении без аргумента?
Anonymous Quiz
7%
Int
34%
String
36%
Boolean
23%
Long
💊8
🤔 В Java, какое ключевое слово используется для определения констант?
Anonymous Quiz
26%
constant
48%
final
26%
static
0%
fixed
🤔 Знаком с sealed классами? В чем их особенность?

Sealed классы в Kotlin ограничивают количество возможных подклассов, что делает их полезными для моделирования состояний с конечным набором вариантов. Это даёт возможность компилятору гарантировать, что все варианты учтены в выражениях `when`, повышая безопасность кода. Sealed классы помогают структурировать код и обеспечивают строгую типизацию для данных, состоящих из нескольких возможных состояний. Они также поддерживают абстрактные и конкретные реализации в подклассах.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
🤔 В Kotlin, как правильно создать несколько вторичных конструкторов в классе?
Anonymous Quiz
86%
Использовать ключевое слово constructor для каждого вторичного конструктора.
3%
Использовать разные имена для каждого конструктора.
6%
Использовать аннотацию @Overload для различения конструкторов.
6%
Определить только один первичный конструктор и использовать init блоки.
🤔 Что такое Doze Mode?

Doze — это режим энергосбережения, введённый с Android 6.0.
Когда устройство долго не используется, система ограничивает:
- Доступ к сети.
- WakeLock-и.
- Фоновые задачи и синхронизации.
Исключения: alarms, high-priority FCM, foreground service.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🤔 Какое преимущество предоставляют корутины в Kotlin по сравнению с традиционными потоками?
Anonymous Quiz
51%
Низкая нагрузка на систему
14%
Автоматическое управление памятью
11%
Нет необходимости в синхронизации
24%
Возможность отмены выполнения
🤔 Как избавиться от 4 конструкторов в CustomView?

Рекомендуется использовать делегирование через основной конструктор и инициализирующие блоки. Также можно применять аннотацию
@JvmOverloads для автоматической генерации перегрузок.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🤔 В Java, какой класс из пакета java.util.concurrent используется для разбиения большой задачи на меньшие части и последующего параллельного выполнения?
Anonymous Quiz
45%
ExecutorService
24%
ForkJoinPool
23%
ConcurrentHashMap
8%
Semaphore