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

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

1. Частые изменения layout вызывают re-layout и re-draw – это нагружает рендеринг и снижает FPS.
2. Анимации должны работать в отдельном слое (RenderThread) – изменение layout тормозит главный поток.
3. Есть альтернатива – вместо layout-изменений лучше использовать TranslationX/Y, ScaleX/Y и Alpha.
Использование ViewPropertyAnimator помогает избежать ненужных


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🤔 Какой из следующих методов создает новый экземпляр класса в Kotlin без использования ключевого слова `new`?
Anonymous Quiz
5%
create
11%
init
8%
construct
76%
Нет необходимости в специальном методе
🤔 Что из себя представляет Flow?

Это асинхронный поток данных, который работает как List, но лениво.
Особенности:
- Выдает значения последовательно – одно за другим.
- Не блокирует поток – работает с suspend-функциями.
- Поддерживает cancel() – может быть остановлен в любой момент.
- Позволяет работать с бесконечными потоками – полезно для сетевых запросов, БД, UI-событий.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
🤔 Как можно создать свойство в классе Kotlin, которое вычисляется при каждом обращении к нему?
Anonymous Quiz
14%
Использовать ключевое слово `dynamic`
6%
Определить свойство с `val`
17%
Определить свойство с `var`
64%
Использовать `custom get()`
Forwarded from easyoffer
На easyoffer 2.0 появится:
🎯 Тренажер "Проработка вопросов"

Метод интервальных повторений и флеш-карточки
Персональный подход изучения на основе ваших ответов
Упор на самые частые вопросы

📌 Интервальные повторения по карточкам это научно доказанный метод эффективного обучения. Каждая карточка – это вопрос, который задают на собеседовании, вы можете выбрать "Не знаю", "Знаю", "Не спрашивать". После ответа вам показывается правильный ответ и возможность изучить вопрос подробнее (примеры ответов других людей). От ваших ответов зависит то, как часто карточки будут показываться на следующей тренировке. Трудные вопросы показываются чаще, простые – реже. Это позволяет бить в слабые места. Кроме того, изначальный порядок карточек зависит от частотности (вероятности встретить вопрос).

🚀 Благодаря этому тренажеру вы сможете очень быстро подготовиться к собеседованию, т.к. фокусируетесь отвечать на самые частые вопросы. Именно так готовился я сам, когда искал первую работу программистом.

Уже в течение недели я объявлю о старте краудфандинговой кампании на сбор финансирования, чтобы ускорить разработку сайта. Все кто поддержит проект до официального релиза получат самые выгодные условия пользования сервисом. А именно 1 год доступа к сайту по цене месячной подписки.

‼️ Очень важно, чтобы как можно больше людей поддержали проект в первые дни, по-этому те кто окажет поддержку первыми получат еще более выгодную стоимость на годовую подписку и существенный 💎 бонус о котором я позже расскажу в этом телеграм канале. Подписывайтесь, чтобы узнать о старте проекта раньше других и воспользоваться лимитированными вознаграждениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой способ в Kotlin гарантирует, что выполнение кода будет отложено до момента его первого использования?
Anonymous Quiz
74%
Использование модификатора `lazy`
23%
Применение ключевого слова `lateinit`
3%
Отложенное выполнение с помощью `deferred`
1%
Вызов функции `invokeLater`
🤔 Что известно про heap pollution (загрязнение heap-а)?

Это ситуация, когда в куче (heap) оказывается объект неправильного типа из-за неправильного использования дженериков. Это может привести к ClassCastException во время выполнения.
Причины загрязнения:
- Использование необработанных типов (raw types), например List вместо List<String>.
- Нарушение type safety при кастах ((List<Integer>) obj).
- Использование varargs с дженериками (List<T>... args).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🤔 Какие преимущества предоставляет использование ключевого слова `data` в объявлении класса в Kotlin?
Anonymous Quiz
1%
Автоматическая генерация `toString()`
12%
Генерация `equals()` и `hashCode()`
2%
Возможность создания копий с помощью `copy()`
85%
Все перечисленные
💊21🤔5🤯1
🤔 Можно ли получить в runtime доступ к типу дженерика?

Нет, в Java дженерики стираются (Type Erasure), и их тип недоступен во время выполнения. Однако можно:
- Передавать Class<T> в конструктор (new MyClass<>(String.class)).
- Использовать рефлексию (ParameterizedType).
В Kotlin можно сохранить тип с reified (см. следующий ответ).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
🤔 Какой подход является наилучшим для определения немедленно исполняемого кода, который должен выполниться только один раз в Kotlin?
Anonymous Quiz
59%
Использование блока `init`
8%
Объявление анонимного класса
25%
Использование `companion object` с блоком инициализации
8%
Применение объектного выражения
💊15
🤔 Как в Kotlin можно определить, что функция может быть переопределена в подклассах?
Anonymous Quiz
44%
Декларируя функцию как `open`
9%
Используя модификатор `abstract`
8%
Определяя функцию в интерфейсе
38%
Все вышеперечисленные способы верны
💊8
🤔 Что известно про ключевое слово reified?

Reified позволяет сохранять информацию о дженерике во время выполнения, что делает возможным проверки типа (if (T is String)).
Используется только в inline-функциях, так как код подставляется во время компиляции, сохраняя информацию о типе.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4💊1
🤔 Какой способ создания экземпляра класса предотвращает множественное наследование в Kotlin?
Anonymous Quiz
25%
Создание класса как `data`
22%
Использование ключевого слова `object`
37%
Объявление класса как `sealed`
16%
Применение модификатора `private` для конструктора
😁12💊4👀1
Forwarded from easyoffer
На easyoffer 2.0 появится новый раздел:
Задачи с собеседований

🟠Задачи на Алгоритмические, Live-coding и System Design из реальных собеседований
🟠Вероятность встретить ту или иную задачу
🟠Возможность подготовиться к задачам конкретной компании

Есть много сайтов, на которых можно тренироваться решать задачи, но у них у всех одна проблема – сами задачи люди просто выдумывают. На easyoffer 2.0 вы сможете готовиться к live-coding и system design секциям на основе задач из реальных собеседований. Вы можете найдете самые частые задачи и сделаете упор на их решение.

Считаные дни остались до старта краудфандинговой кампании, чтобы ускорить разработку easyoffer 2.0. Все кто, поддержал проект на этом этапе смогу получить 1 год доступа к сайту по цене месячной подписки, а те кто поддержат проект раньше других ито дешевле + получат существенный бонус. Следите за стартом 👉 в этом телеграм канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Kotlin лучше всего реализовать условное выполнение блока кода в зависимости от типа объекта?
Anonymous Quiz
83%
Использование `when` с проверками типа через `is`
7%
Применение серии `if-else` с `instanceof`
8%
Вызов метода `typeOf()`
2%
Применение шаблона проектирования `Strategy`
🤔 Что такое CoroutineScope?

Это область, в которой выполняются корутины в Kotlin. Определяет жизненный цикл корутин и позволяет отменять их при завершении scope.
- GlobalScope – живет все время работы приложения, но редко используется.
- viewModelScope – в ViewModel, отменяется при уничтожении ViewModel.
- lifecycleScope – в Activity/Fragment, отменяется при уничтожении UI.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2
🤔 Как в Kotlin реализовать метод, который принимает произвольное число аргументов того же типа?
Anonymous Quiz
90%
Используя ключевое слово `varargs`
6%
Применяя список как аргумент
3%
Определяя параметр как массив
2%
Использование перегрузки функций
🤔 Каким образом можно защитить переменную в Kotlin от изменений после её инициализации?
Anonymous Quiz
21%
Использовать ключевое слово `const`
74%
Объявить переменную типа `val`
4%
Применить `final`
1%
Заблокировать переменную с помощью `lock`
💊1