Logo
TGCATALOG
Catalog Collections Blog
Kotlin | Interview Questions

Kotlin | Interview Questions

Interview questions for Kotlin developers with answers.

No ratings
726
29.10.2026
726
29.10.2026
No ratings
726
29.10.2026
Safe redirect via bot
О канале

Interview questions for Kotlin developers with answers.

Подписчиков 2,451
Тематика Technology
Язык English
Ссылка t.me/easy_kotlin

We also recommend

Kekaton AI | Voiceover and voice clone
Kekaton AI | Voiceover and voice clone
Bot

AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.

Description

Kotlin interview questions: extensions, coroutines, collections. With code examples and explanations for Android and backend.

Latest posts

Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Чем отличается data push от identification push? – Data push — содержит полезную нагрузку (данные), которые обрабатываются приложением (например, текст сообщения, обновления). – Identification push — содержит только метаинформацию, которая говорит приложению, что нужно самостоятельно запросить данные с сервера. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Для проектов в которых есть несколько модулей, там может быть много Android Manifest'ов, для чего это делается? В многомодульных проектах каждый модуль может иметь свой AndroidManifest.xml, чтобы: Задавать зависимости (uses-permission, uses-feature) для конкретного модуля. Определять компоненты (Activity, Service, BroadcastReceiver) для каждого модуля. Автоматически объединять манифесты всех модулей в AndroidManifest.xml главного (app) модуля. 🚩Как объединяются манифесты в многомодульном проекте? При сборке Gradle автоматически сливает (merge) все AndroidManifest.xml в один итоговый файл. app/ ├── src/main/AndroidManifest.xml ← Главный манифест ├── java/com/example/MainActivity.kt ├── res/ ├── build.gradle feature_login/ ├── src/main/AndroidManifest.xml ← Манифест модуля `login` ├── java/com/example/login/LoginActivity.kt ├── res/ ├── build.gradle feature_chat/ ├── src/main/AndroidManifest.xml ← Манифест модуля `chat` ├── java/com/example/chat/ChatActivity.kt ├── res/ ├── build.gradle 🚩Как работает объединение манифестов? При сборке манифесты модулей сливаются в манифест главного модуля. feature_login (feature_login/src/main/AndroidManifest.xml) feature_chat (feature_chat/src/main/AndroidManifest.xml) После объединения итоговый AndroidManifest.xml выглядит так 🚩Зачем модулям свой `AndroidManifest.xml`? 🟠Разные разрешения (`uses-permission`) для каждого модуля Например, модуль camera требует CAMERA, но другие модули — нет. 🟠Разные `Activity`, `Service`, `BroadcastReceiver` в каждом модуле Каждый модуль добавляет только свои компоненты (например, LoginActivity в feature_login). 🟠Разные зависимости для разных модулей Например, модуль feature_map использует Google Maps, но feature_login — нет. Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Как можно сделать Activity-фрагменты? – Выделить каждый экран в Fragment, – Хостить их в Activity, – Использовать FragmentTransaction или Navigation Component для навигации. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Как по объекту понять, что он не используется? Сильная ссылка - это ссылка, которая напрямую указывает на объект и предотвращает его сборку сборщиком мусора. 🚩Основные подходы 🟠WeakReference Использование слабых ссылок (WeakReference) позволяет определить, был ли объект освобожден сборщиком мусора. 🟠ObjectWatcher (в LeakCanary) LeakCanary использует ObjectWatcher для отслеживания объектов. Если объект не освобожден, ObjectWatcher уведомляет об утечке. import java.lang.ref.WeakReference; public class MemoryLeakExample { public static void main(String[] args) { // Создание объекта MyObject myObject = new MyObject(); // Создание слабой ссылки на объект WeakReference weakRef = new WeakReference(myObject); // Удаление сильной ссылки myObject = null; // Вызов сборщика мусора System.gc(); // Проверка, была ли слабая ссылка освобождена if (weakRef.get() == null) { System.out.println("Object has been garbage collected"); } else { System.out.println("Object is still alive"); } } static class MyObject { // Некоторая логика класса } } 🚩Понимание, что объект не используется 🟠Нет сильных ссылок Убедитесь, что на объект нет сильных ссылок. Только слабые, мягкие или фантомные ссылки не предотвращают сборку объекта. 🟠Сборка мусора Если объект становится недоступным через сильные ссылки, сборщик мусора может его освободить. 🟠Проверка с помощью WeakReference Слабые ссылки могут быть использованы для проверки того, был ли объект освобожден. Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Что известно про антипаттерны? Антипаттерны — это распространённые, но неэффективные или опасные решения, например: – God Object, – Spaghetti Code, – Lava Flow, – Copy-Paste Programming. Они приводят к проблемам в сопровождении и развитии кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Вставка значения быстрее в Linked list или в Array list? 🚩Вставка в `ArrayList` ArrayList реализован на основе массива. 🟠Вставка в конец Амортизированное O(1). Если массив не заполнен, элемент добавляется в конец списка. В случае, если массив заполнен, требуется выделение нового массива и копирование элементов, что занимает O(n) времени. val arrayList = ArrayList() arrayList.add(1) // Быстрая вставка в конец 🟠Вставка в начало или середину O(n). Необходимо сдвинуть все элементы, начиная с позиции вставки, чтобы освободить место для нового элемента. Это требует времени, пропорционального количеству элементов после позиции вставки. arrayList.add(0, 2) // Медленная вставка в начало arrayList.add(1, 3) // Медленная вставка в середину 🚩Вставка в LinkedList LinkedList реализован на основе узлов, где каждый узел содержит ссылку на следующий и/или предыдущий узел (в случае двусвязного списка). 🟠Вставка в начало: O(1). Для добавления элемента в начало достаточно изменить ссылки первого узла и нового узла. val linkedList = LinkedList() linkedList.addFirst(1) // Быстрая вставка в начало 🟠Вставка в конец O(1) (если есть ссылка на последний узел) или O(n) (если необходимо пройти весь список). Если список двусвязный и хранится ссылка на последний элемент, вставка в конец осуществляется за O(1). В противном случае, требуется пройти весь список до конца. linkedList.addLast(2) // Быстрая вставка в конец, если есть ссылка на последний узел 🟠Вставка в середину O(n). Необходимо пройти список до нужной позиции и изменить ссылки узлов. linkedList.add(1, 3) // Медленная вставка в середину Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Что такое DEX? DEX — Dalvik Executable — бинарный формат байткода, исполняемый Dalvik/ART. Файл classes.dex содержит весь скомпилированный Kotlin/Java код. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Какие способы навигации знаешь? В Android есть несколько способов навигации между экранами. Давай разберём основные. 🟠Activity-based навигация Каждый экран – это отдельная Activity, переход осуществляется с помощью Intent. val intent = Intent(this, SecondActivity::class.java) startActivity(intent) 🟠Fragment-based навигация Один Activity содержит несколько Fragment, навигация через FragmentManager. supportFragmentManager.beginTransaction() .replace(R.id.container, SecondFragment()) .addToBackStack(null) .commit() 🟠Navigation Component (Jetpack) Google рекомендует Navigation Component для удобной работы с Fragment. findNavController().navigate(R.id.action_firstFragment_to_secondFragment) 🟠Bottom Navigation / Tab Navigation Используется BottomNavigationView или TabLayout для переключения между экранами. bottomNavigationView.setOnNavigationItemSelectedListener { item -> when (item.itemId) { R.id.home -> replaceFragment(HomeFragment()) R.id.profile -> replaceFragment(ProfileFragment()) } true } 🟠Drawer Navigation (Navigation Drawer) Боковое меню (DrawerLayout) с пунктами навигации. drawerLayout.openDrawer(GravityCompat.START) 🟠Deep Links и App Links Навигация через ссылки (например, myapp://profile/123). 🟠Navigation в Jetpack Compose Используется NavHost и NavController. NavHost(navController, startDestination = "home") { composable("home") { HomeScreen(navController) } composable("profile") { ProfileScreen(navController) } } Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 В чём разница между action и category у Intent? - action — описывает действие, которое должен выполнить Intent (например, VIEW, EDIT). - category — определяет тип компонентов, которые могут обработать Intent (например, LAUNCHER, DEFAULT). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
FAQ

Open Kotlin | Interview Questions in Telegram and press the Start button. No separate registration is required.

Yes. The service is designed to be straightforward: open the resource, follow the on-screen instructions and start using it.

No. You can use Kotlin | Interview Questions directly in Telegram unless the resource description says otherwise.

Access depends on the resource. Check the current information in Telegram after opening Kotlin | Interview Questions.

The exact features depend on the resource. Open Kotlin | Interview Questions to see its current functions, content and access conditions.
Subscriber dynamics
+0.0% last 30 days
Current
2,451
Month ago
2,450
Average growth
+0 / day
Updated
14 hours ago

Reviews for channel Kotlin | Interview Questions

Log in to leave a review

Only registered users can share their opinion.

No reviews yet

Be the first to share your impression of this resource!

Similar resources

Loading
Switch to Light Theme
Home Catalog Collections Blog Login