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
🔒Открыть пост
и посмотреть медиа
🤔 Что такое лямбды с точки зрения синтаксиса в Java и Kotlin? Лямбда-выражения представляют собой компактный способ представления анонимных функций, который особенно полезен для создания коротких блоков выполнения кода, предназначенных для последующей передачи другим функциям. Лямбды широко используются для упрощения работы с коллекциями, потоками данных, асинхронным кодом и в ситуациях, где требуется функциональный интерфейс. 🚩Лямбда-выражения Были введены в Java 8 и являются частью усилий по добавлению функциональных возможностей в язык. Лямбды в Java чаще всего используются с функциональными интерфейсами, которые являются интерфейсами с одним абстрактным методом. (parameters) -> expression или (parameters) -> { statements; } 🚩Лямбда-выражения Поддерживает более гибкие и выразительные лямбды по сравнению с Java. Лямбды могут использоваться как с функциональными интерфейсами, так и в качестве части синтаксиса языка, благодаря чему Kotlin особенно удобен для функционального программирования. { parameters -> code body } 🚩Примеры Лямбда без параметров { println("Hello, World!") } Лямбда с одним параметром { a: Int -> a * a } Лямбда с несколькими параметрами { a: Int, b: Int -> a + b } Лямбда с телом, содержащим несколько выражений { s: String -> println(s) s.length } Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Как заинжектить в поле в Dagger Hilt? Чтобы внедрить зависимость, достаточно добавить аннотацию @Inject к полю и использовать @AndroidEntryPoint на компоненте. Hilt автоматически подставит нужный объект. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Что такое TransactionTooLargeException? TransactionTooLargeException — это исключение, которое возникает, если передаваемые данные превышают лимит 1MB в Binder. Чаще всего ошибка появляется при передаче больших объектов через Intent, Bundle, `onSaveInstanceState(). 🚩Как воспроизвести `TransactionTooLargeException`? Передача большого Bitmap через Intent (ОШИБКА!) val bitmap: Bitmap = getLargeBitmap() // ❌ Очень большой объект val intent = Intent(this, ImageActivity::class.java) intent.putExtra("image", bitmap) // ❌ Ошибка: TransactionTooLargeException startActivity(intent) Ошибка android.os.TransactionTooLargeException: data parcel size 2MB is larger than 1MB 🚩Как избежать `TransactionTooLargeException`? Использовать FileProvider и Uri вместо Bitmap val file = File(context.cacheDir, "image.png") file.outputStream().use { bitmap.compress(Bitmap.CompressFormat.PNG, 100, it) } val uri = FileProvider.getUriForFile(context, "${context.packageName}.fileprovider", file) val intent = Intent(this, ImageActivity::class.java).apply { putExtra("image_uri", uri.toString()) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) } startActivity(intent) 🚩Использовать `ViewModel` вместо `onSaveInstanceState()` Ошибка: сохранение больших данных в onSaveInstanceState() override fun onSaveInstanceState(outState: Bundle) { outState.putSerializable("largeData", myLargeObject) // ❌ ОШИБКА! super.onSaveInstanceState(outState) } Решение → Используем ViewModel, чтобы хранить данные в памяти: class MyViewModel : ViewModel() { var largeData: MyLargeObject? = null } 🚩Хранить данные в `SharedPreferences` или `Room` Если данные не нужны постоянно → используем SharedPreferences getSharedPreferences("app_prefs", MODE_PRIVATE).edit() .putString("last_data", jsonData) .apply() Если данные большие и важные → используем Room @Dao interface MyDao { @Insert(onConflict = OnConflictStrategy.REPLACE) fun saveData(data: MyData) } Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Какие переменные можно использовать в data class? В data class можно использовать только свойства, объявленные в первичном конструкторе (val или var). Эти свойства автоматически участвуют в: - equals, hashCode; - toString; - copy и componentN. Остальные свойства не считаются частью "данных" класса. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Как сказать адаптеру перерисовать список, если какой-то элемент удалился? Если удалился элемент из списка, нужно: Удалить его из списка данных. Сообщить Adapter, чтобы он перерисовал только изменённые элементы. 🚩Используем `notifyItemRemoved()` (лучший вариант) Этот метод обновляет только удалённый элемент, сохраняя анимации. fun removeItem(position: Int) { itemList.removeAt(position) // Удаляем из списка данных notifyItemRemoved(position) // Сообщаем адаптеру notifyItemRangeChanged(position, itemList.size) // Обновляем индексы } 🚩Если изменился весь список – `DiffUtil` Если изменился несколько элементов, лучше использовать DiffUtil, чтобы обновить только нужные элементы. class MyAdapter : ListAdapter(DIFF_CALLBACK) { companion object { private val DIFF_CALLBACK = object : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: Item, newItem: Item): Boolean { return oldItem.id == newItem.id } override fun areContentsTheSame(oldItem: Item, newItem: Item): Boolean { return oldItem == newItem } } } } Обновляем список через submitList() fun removeItem(item: Item) { val newList = currentList.toMutableList() newList.remove(item) submitList(newList) // `DiffUtil` сам вычислит, что обновить } 🚩Полное обновление списка (`notifyDataSetChanged()`) Использовать только если изменился весь список! fun removeItem(position: Int) { itemList.removeAt(position) notifyDataSetChanged() // Перерисовывает весь список (медленно) } Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Что такое инстанциация и инициализация? - Инстанциация — процесс создания экземпляра (объекта) класса (например, new ClassName()); - Инициализация — установка начальных значений полей и выполнение конструктора. Инстанциация включает в себя инициализацию. Вот подробные пояснения к каждому из ваших вопросов Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 В чем различие Default диспатчер и IO диспатчер? В Kotlin Coroutines есть несколько диспетчеров (Dispatchers), но Default и IO используются чаще всего. 🚩Главное различие: Dispatchers.Default — для тяжёлых вычислений (CPU-операции). Dispatchers.IO — для операций ввода-вывода (сеть, файлы, БД). 🟠`Dispatchers.Default` – для сложных вычислений (CPU-bound) Этот диспетчер используется, если код загружает процессор (например, сложные вычисления). import kotlinx.coroutines.* fun main() = runBlocking { launch(Dispatchers.Default) { val result = heavyComputation() println("Результат: $result") } } suspend fun heavyComputation(): Int { delay(1000) return (1..1_000_000).sum() } 🟠`Dispatchers.IO` – для работы с файлами, сетью, БД (IO-bound) Этот диспетчер оптимизирован для ввода-вывода (I/O): работа с файлами, сетью, БД. import kotlinx.coroutines.* import java.io.File fun main() = runBlocking { launch(Dispatchers.IO) { val text = File("data.txt").readText() println("Файл прочитан: $text") } } Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Для чего нужен объект Job? Job — это элемент управления жизненным циклом корутины. С его помощью можно: - отменять корутину; - отслеживать завершение; - объединять с другими задачами; - управлять родительскими и дочерними корутинами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Interview Questions
Kotlin | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Можешь рассказать отличия и в каких случаях их использовать list set map? В Kotlin есть три основных типа коллекций: List — упорядоченный список элементов. Set — множество уникальных элементов. Map — коллекция пар "ключ-значение". 🚩List — упорядоченный список List — это коллекция, в которой можно хранить дубликаты, а элементы доступны по индексу. val numbers = listOf(1, 2, 3, 4, 5) // Immutable (нельзя изменять) val mutableNumbers = mutableListOf(1, 2, 3) // Можно изменять mutableNumbers.add(4) // Добавляем элемент mutableNumbers.removeAt(1) // Удаляем элемент по индексу println(mutableNumbers) // [1, 3, 4] 🚩Set — множество уникальных элементов Set — это коллекция, в которой нет дубликатов. val numbers = setOf(1, 2, 3, 3, 4, 5) // Дубликаты удаляются автоматически println(numbers) // [1, 2, 3, 4, 5] val mutableNumbers = mutableSetOf(1, 2, 3) mutableNumbers.add(3) // Не добавится, потому что уже есть mutableNumbers.add(4) // Добавится println(mutableNumbers) // [1, 2, 3, 4] 🚩Map — коллекция пар "ключ-значение" Map — это структура данных, в которой каждому ключу соответствует одно значение. val userMap = mapOf( 1 to "Alice", 2 to "Bob", 3 to "Charlie" ) // Immutable val mutableUserMap = mutableMapOf(1 to "Alice", 2 to "Bob") mutableUserMap[3] = "Charlie" // Добавляем новый ключ-значение mutableUserMap.remove(1) // Удаляем элемент по ключу println(mutableUserMap) // {2=Bob, 3=Charlie} Ставь 👍 и забирай 📚 Базу знаний
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
7 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