Logo
TGCATALOG
Catálogo Selecciones Blog
Kotlin | Вопросы собесов

Kotlin | Вопросы собесов

Вопросы для Kotlin-разработчиков с ответами.

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

Вопросы для Kotlin-разработчиков с ответами.

Подписчиков 2,448
Тематика 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

Вопросы на Kotlin-собеседованиях: расширения, корутины, коллекции. С примерами кода и объяснениями для Android и backend.

Últimas publicaciones

Kotlin | Вопросы собесов
Kotlin | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Что такое лямбды с точки зрения синтаксиса в 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 | Вопросы собесов
Kotlin | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Как заинжектить в поле в Dagger Hilt? Чтобы внедрить зависимость, достаточно добавить аннотацию @Inject к полю и использовать @AndroidEntryPoint на компоненте. Hilt автоматически подставит нужный объект. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Вопросы собесов
Kotlin | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Что такое 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 | Вопросы собесов
Kotlin | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Когда происходит перегрузка при использовании inline-функций? Перегрузка может произойти при передаче функций с разным числом аргументов, noinline и crossinline, а также при компиляции в Java, где inline-функции превращаются в разные реализации. Коллизии имён могут быть причиной перегрузки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Kotlin | Вопросы собесов
Kotlin | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 В чем разница между linked list и array list? Являются двумя различными типами коллекций, которые используются для хранения наборов данных. Основные различия между этими двумя структурами данных касаются их внутренней реализации, что влияет на производительность операций добавления, удаления и доступа к элементам. 🚩Внутренняя реализация 🟠ArrayList основан на динамическом массиве. Это позволяет обеспечить быстрый доступ к элементам по индексу, поскольку адрес каждого элемента в памяти может быть вычислен напрямую. Однако, поскольку внутренний массив имеет фиксированный размер, при его переполнении необходимо выделить массив большего размера и скопировать в него все элементы из старого массива, что делает операции добавления и удаления более затратными по времени, особенно для больших объемов данных. 🟠LinkedList основан на двусвязном списке элементов, где каждый элемент (узел) содержит данные и ссылки на предыдущий и следующий элементы в списке. Это обеспечивает высокую производительность операций вставки и удаления, поскольку требуется лишь изменить ссылки у соседних элементов, но доступ к элементам по индексу занимает больше времени, так как для этого нужно последовательно пройти от начала или конца списка до нужного элемента. 🚩Производительность: 🟠ArrayList Быстрый доступ к элементам по индексу. Медленные операции добавления и удаления элементов (особенно в начале и середине списка), так как может потребоваться сдвиг оставшейся части массива. 🟠LinkedList Быстрые операции вставки и удаления элементов, поскольку они требуют только изменения ссылок. Медленный доступ к элементам по индексу, так как для доступа к элементу необходимо пройти по списку. Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Вопросы собесов
Kotlin | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Если профайлер показывает тебе что какой-нибудь фрейм занял 120 миллисекунд, что это значит? Если профайлер показывает, что рендеринг какого-либо фрейма занял 120 миллисекунд, это означает, что этот фрейм выполнялся слишком долго, что приводит к фризам и лагам в пользовательском интерфейсе. 🚩Разбор проблемы 🟠Что значит "фрейм" в этом контексте? В Android интерфейс обновляется 60 раз в секунду (частота 60 FPS). Это значит, что каждый кадр (фрейм) должен рендериться не дольше 16,67 мс (1000 мс / 60 FPS). 🟠Почему 120 мс — это плохо? Если рендеринг кадра занимает 120 мс, то за это время устройство должно было бы нарисовать 7 кадров (120 / 16,67 ≈ 7). Однако оно успело обработать только один, что приводит к заметному подтормаживанию. 🟠Что может вызывать такие задержки? Тяжёлые вычисления в основном потоке (UI Thread) – например, сложные математические операции, работа с JSON, парсинг файлов. Долгие операции с рендерингом – сложные векторные изображения, перегруженные Canvas.draw() или анимации. Синхронные вызовы I/O (чтение файлов, базы данных, сети) – если, например, в onDraw() идёт обращение к диску или базе данных. Неоптимальный layout – глубокая иерархия ViewGroup, частые перерасчёты макетов (measure/layout). 🚩Как исправить? 🟠Перенести тяжёлые вычисления в фоновый поток Coroutines, Executors, WorkManager 🟠Использовать профайлер Android Studio для поиска "узких мест". 🟠Оптимизировать рендеринг избегать сложных onDraw(), использовать ViewStub, RecyclerView. 🟠Пересмотреть макет убрать ненужные ViewGroup, использовать ConstraintLayout. Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Вопросы собесов
Evolución de suscriptores
+0.0% últimos 30 días
Actuales
2,448
Hace un mes
2,448
Crecimiento medio
+0 / día
Actualizado
hace 17 horas

Reseñas de canal Kotlin | Вопросы собесов

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

Base de conocimientos enAsterisco:VoIP.IPTeléfonía, configuración y resolución de problemas para administradores.

Canal

NewsMiniOS Linux: lanzamientos, consejos, discusiones. Distribución minimalista para uso diario.

Canal

Canal con discusiones de criptomonedas: Web3,DeFi.GameFiVC.GiveawayAMA, promociones y noticias frescas.

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