Logo
TGCATALOG
Catálogo Selecciones Blog
Kotlin  Preguntas de Entrevista

Kotlin Preguntas de Entrevista

Preguntas de entrevista para desarrolladores de Kotlin con respuestas.

Sin valoraciones
726
29.10.2026
726
29.10.2026
Sin valoraciones
726
29.10.2026
Redirección segura vía bot
О канале

Preguntas de entrevista para desarrolladores de Kotlin con respuestas.

Подписчиков 2,449
Тематика Tecnología
Язык Español
Ссылка t.me/easy_kotlin

También te recomendamos

Kekaton AI  Voz en off y clon de voz
Kekaton AI Voz en off y clon de voz
Bot

bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.

Descripción

Preguntas de entrevista Kotlin: extensiones, coroutenos, colecciones. Con ejemplos de código y explicaciones para Android y backend.

Últimas publicaciones

Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 Какие знаешь особенности системы типов в Kotlin ? 🟠Null Safety (Безопасность null) Переменные по умолчанию не могут быть null, что предотвращает NullPointerException. var a: String = "abc" var b: String? = "abc" b = null // Допустимо 🟠Коллекции (Collections) Разделение на изменяемые и неизменяемые коллекции. val list: List = listOf("a", "b", "c") // Неизменяемый список val mutableList: MutableList = mutableListOf("a", "b", "c") // Изменяемый список 🟠Data Classes (Классы данных) Автоматическое создание методов equals(), hashCode(), и toString(). data class User(val name: String, val age: Int) 🟠Smart Casts (Умные приведения типов) Автоматическое приведение типа после проверки с помощью is. fun demo(x: Any) { if (x is String) { println(x.length) } } 🟠Sealed Classes (Запечатанные классы) Упрощают обработку ограниченных иерархий классов. sealed class Expr data class Const(val number: Double) : Expr() 🟠Выведение типов (Type Inference) Kotlin автоматически определяет тип переменной. val x = 10 // Int Ставь 👍 и забирай 📚 Базу знаний
Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 Какая особенность у Data Class относительно других Kotlin Classes? Data Class автоматически генерирует equals, hashCode, toString, copy, и componentN функции. Они удобны для хранения данных и значительно упрощают работу с неизменяемыми структурами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 Расскажи о контрактах equals и hashCode Методы equals() и hashCode() используются для сравнения объектов и их корректной работы в коллекциях (Set, Map). 🚩Контракт `equals()` Метод equals() должен: Рефлексивность: a.equals(a) → true (объект равен самому себе). Симметричность: a.equals(b) == b.equals(a). Транзитивность: если a == b и b == c, то a == c. Согласованность: если a == b, то a.equals(b) всегда возвращает одно и то же, пока объект не изменится. Сравнение с null всегда даёт false: a.equals(null) == false. class User(val name: String, val age: Int) { override fun equals(other: Any?): Boolean { if (this === other) return true // Проверка на ссылочное равенство if (other !is User) return false // Проверка типа return name == other.name && age == other.age // Сравнение полей } } val user1 = User("Alice", 25) val user2 = User("Alice", 25) println(user1 == user2) // true (потому что переопределён equals) 🚩Контракт `hashCode()` Метод hashCode() должен: Согласованность с equals(): если a == b, то a.hashCode() == b.hashCode(). Но обратное не обязательно: два разных объекта могут иметь одинаковый hashCode(). Хеш-код не должен меняться, если объект не изменился. class User(val name: String, val age: Int) { override fun equals(other: Any?): Boolean { if (this === other) return true if (other !is User) return false return name == other.name && age == other.age } override fun hashCode(): Int { return name.hashCode() * 31 + age // 31 - стандартный коэффициент } } val userSet = HashSet() userSet.add(User("Alice", 25)) println(userSet.contains(User("Alice", 25))) // true 🚩Автоматическая генерация в Kotlin Чтобы не писать equals() и hashCode() вручную, можно использовать data class: data class User(val name: String, val age: Int) data class автоматически создаёт equals(), hashCode(), а также copy() и toString(). val user1 = User("Alice", 25) val user2 = User("Alice", 25) println(user1 == user2) // true (equals) println(user1.hashCode() == user2.hashCode()) // true Ставь 👍 и забирай 📚 Базу знаний
Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 Как работает async/await? async запускает асинхронную корутину, возвращающую Deferred, аналог Future. await приостанавливает выполнение до получения результата. Это позволяет параллельно выполнять задачи и синхронно работать с результатом. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 View Model vs OnSavedInstanceState? ViewModel и onSaveInstanceState служат для сохранения данных при изменении конфигурации активности или фрагмента (например, при повороте экрана). Однако они решают эту задачу по-разному и имеют разные области применения. 🟠ViewModel ViewModel используется для хранения и управления данными, связанных с UI, таким образом, чтобы они сохранялись при изменении конфигурации (например, при повороте экрана). 🚩Как это работает? Когда система уничтожает и пересоздаёт Activity или Fragment, ViewModel остаётся в памяти до полного уничтожения владельца (например, выхода из Activity). class MyViewModel : ViewModel() { var counter: Int = 0 // Переменная, которая сохраняется при повороте экрана } Использование в Activity class MainActivity : AppCompatActivity() { private lateinit var viewModel: MyViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) viewModel = ViewModelProvider(this).get(MyViewModel::class.java) // Теперь viewModel.counter сохранится при повороте экрана } } 🚩Плюсы ➕Хранит данные в памяти до полного уничтожения Activity или Fragment. ➕Удобно для хранения сложных объектов списки, модели, API-данные ➕Позволяет разделять логику и UI улучшая архитектуру. 🚩Минусы ➖Данные исчезают при уничтожении Activity например, при закрытии приложения ➖Не сохраняет данные при завершении процесса например, при нехватке памяти 🚩onSaveInstanceState() Метод onSaveInstanceState() используется для сохранения данных в Bundle, который система автоматически передаёт при пересоздании Activity или Fragment. 🚩Как это работает? Когда Activity уничтожается (например, при повороте экрана), система вызывает onSaveInstanceState(), в котором можно сохранить небольшие данные (строки, числа и т. д.). После пересоздания Activity эти данные можно восстановить из savedInstanceState. class MainActivity : AppCompatActivity() { private var counter: Int = 0 // Значение, которое мы хотим сохранить override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Восстанавливаем данные, если они есть counter = savedInstanceState?.getInt("counter_key") ?: 0 } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) outState.putInt("counter_key", counter) // Сохраняем значение перед уничтожением Activity } } 🚩Плюсы ➕Сохраняет данные даже при завершении процесса (например, при нехватке памяти). ➕Позволяет быстро восстановить состояние UI (например, текст в EditText). 🚩Минусы ➖Подходит только для небольших данных (числа, строки). ➖Не подходит для хранения сложных объектов (списки, большие модели, API-данные). ➖Требует кодирования и декодирования данных в Bundle Ставь 👍 и забирай 📚 Базу знаний
Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 Из каких более важных компонентов состоит Compose? Compose состоит из компонентов: - Composable функции: описывают UI. - State: управляет состоянием компонентов. - Modifiers: применяются для настройки внешнего вида и поведения. - Layouts: определяют структуру расположения элементов на экране. - Recomposition: механизм обновления интерфейса при изменении состояния. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 Какой класс можно использовать что бы ловить разные жесты? Чтобы обрабатывать жесты в Android, используйте класс GestureDetector. Он помогает отслеживать стандартные жесты: одиночные нажатия, свайпы, долгие нажатия, двойные касания и т.д. 🚩Как использовать GestureDetector? Создайте экземпляр GestureDetector, передав Context и слушателя (GestureDetector.OnGestureListener). Передавайте события касания в gestureDetector.onTouchEvent(event) из метода onTouchEvent(). class GestureActivity : AppCompatActivity(), GestureDetector.OnGestureListener { private lateinit var gestureDetector: GestureDetector override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) gestureDetector = GestureDetector(this, this) } override fun onTouchEvent(event: MotionEvent): Boolean { return gestureDetector.onTouchEvent(event) || super.onTouchEvent(event) } override fun onFling(e1: MotionEvent?, e2: MotionEvent?, velocityX: Float, velocityY: Float): Boolean { val deltaX = e2!!.x - e1!!.x if (deltaX > 0) Log.d("Gesture", "Swipe Right") else Log.d("Gesture", "Swipe Left") return true } override fun onDown(e: MotionEvent?) = true override fun onShowPress(e: MotionEvent?) {} override fun onSingleTapUp(e: MotionEvent?) = false override fun onScroll(e1: MotionEvent?, e2: MotionEvent?, distanceX: Float, distanceY: Float) = false override fun onLongPress(e: MotionEvent?) {} } Ставь 👍 и забирай 📚 Базу знаний
Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 Какие преимущества Android перед другими ОС? Android предлагает открытую экосистему, гибкость в разработке, большое количество поддерживаемых устройств и мощный инструментарий. Также Android предоставляет свободу кастомизации UI и взаимодействие с низкоуровневыми возможностями системы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin  Preguntas de Entrevista
Kotlin Preguntas de Entrevista
🔒Открыть пост
и посмотреть медиа
🤔 Что делает библиотека LifeCycle ? Библиотека Lifecycle в Android Jetpack помогает управлять и контролировать жизненный цикл компонентов Android, таких как Activities и Fragments. Она упрощает создание компонентов, которые осведомлены о своем жизненном цикле и могут корректно реагировать на изменения в нем. Это позволяет избегать утечек памяти и некорректной работы компонентов при изменении конфигураций или переходах между состояниями. 🚩Основные компоненты библиотеки Lifecycle 🟠LifecycleOwner Это интерфейс, который определяет класс как владеющий жизненным циклом. Activity и Fragment уже реализуют этот интерфейс. class MyActivity : AppCompatActivity(), LifecycleOwner { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } 🟠LifecycleObserver Это интерфейс, который позволяет классу наблюдать за изменениями в жизненном цикле компонента. Методы, аннотированные @OnLifecycleEvent, будут вызываться при соответствующих событиях жизненного цикла. class MyObserver : LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_START) fun onStart() { // Код, который выполняется при старте жизненного цикла Log.d("MyObserver", "onStart called") } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) fun onStop() { // Код, который выполняется при остановке жизненного цикла Log.d("MyObserver", "onStop called") } } 🟠Lifecycle Это класс, который содержит информацию о текущем состоянии и позволяет другим объектам наблюдать за изменениями в жизненном цикле. class MyActivity : AppCompatActivity() { private lateinit var myObserver: MyObserver override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) myObserver = MyObserver() lifecycle.addObserver(myObserver) } } 🚩Применение библиотеки Lifecycle 1⃣ Добавьте зависимости в ваш build.gradle dependencies { implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" } 2⃣Создайте класс, реализующий LifecycleObserver class MyObserver : LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) fun onResume() { Log.d("MyObserver", "Activity resumed") } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) fun onPause() { Log.d("MyObserver", "Activity paused") } } 3⃣Добавьте LifecycleObserver в LifecycleOwner (например, Activity) class MyActivity : AppCompatActivity() { private lateinit var myObserver: MyObserver override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) myObserver = MyObserver() lifecycle.addObserver(myObserver) } } Ставь 👍 и забирай 📚 Базу знаний
Kotlin Preguntas de Entrevista
Evolución de suscriptores
+0.0% últimos 30 días
Actuales
2,449
Hace un mes
2,450
Crecimiento medio
+0 / día
Actualizado
hace 22 horas

Reseñas de canal Kotlin Preguntas de Entrevista

Inicia sesión para dejar una reseña

Solo los usuarios registrados pueden compartir su opinión.

Aún no hay reseñas

¡Sé el primero en compartir tu experiencia con este recurso!

Recursos similares

Loading
Cambiar a tema claro
Inicio Catálogo Selecciones Blog Entrar