Тех собес на middle-senior Android Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории Android Developer

Посмотреть видео в категории

(2024-11-29)

— Вопросы по Kotlin:

1. В чём основные преимущества Kotlin перед Java? 2. Расскажи, какие коллекции есть в Kotlin. 3. В чём разница между ArrayList и LinkedList? 4. В каких случаях лучше использовать ArrayList, а в каких — LinkedList? 5. Когда в ArrayList операции занимают константное время, а когда — линейное? 6. Как получить элемент по индексу в ArrayList и в LinkedList? Объясни разницу в сложности этих операций. 7. Что такое коллизия в HashMap? В каком случае она может возникнуть? 8. Как решить проблему с коллизиями? 9. Какой базовый класс в Kotlin и какие у него есть методы? 10. Для чего нужен hash-code и нужно ли его переопределять? 11. Какие особенности у hash-code есть у data class? 12. Что могут делать data class? Могут ли они имплементировать интерфейсы или наследоваться от других классов?наследоваться от других классов?

— Вопросы по Sealed classes и inline функциям:

1. Использовал ли ты sealed class? В чем их преимущество перед enum? 2. Зачем нужны inline функции? В каких случаях их нужно применять? 3. Что происходит «под капотом», когда функция помечается как inline? 4. Какие есть ограничения на использование inline функций?` функций?

— Вопросы по Generics и Coroutines:

1. Для чего при объявлении дженериков используются модификаторы in и out? 2. Что такое CoroutineScope? Какие они бывают и для чего нужны? 3. Какими инструментами можно управлять жизненным циклом корутин? 4. Как можно сменить поток выполнения coroutine? 5. Что такое CoroutineDispatcher? 6. Какой диспетчер следует использовать при загрузке ресурса из сети?а из сети?

— Вопросы по Android и архитектуре:

1. Расскажи про понятия stack и heap в JVM. Сколько их может быть в приложении? 2. Что такое recomposition в Jetpack Compose? Опиши процесс своими словами. 3. Для чего нужна функция remember? 4. Что такое side-effect в Jetpack Compose? Какие side-effect’ы ты знаешь и для чего они используются? 5. Приходилось ли сталкиваться с утечками памяти? В каком случае может произойти утечка Activity? 6. Знаком ли ты с Kotlin Multiplatform? В чём её идея? 7. С какими библиотеками для DI приходилось работать? В чём их разница? 8. Как ты выбирал между архитектурами MVI и MVVM для своих проектов?и MVVM для своих проектов?

— Вопросы по сетям и общим знаниям:

1. В чём разница между протоколами TCP и UDP? Для каких задач подходит каждый из них? 2. Как ты следишь за новостями в Android-разработке? 3. Какие последние нововведения в Android-разработке или Kotlin тебе запомнились за последний год?едний год?

— Задача 1: Что выведет программа? Есть ли тут ошибки? Если есть, то исправьте.

   class ParentClass {
    private val age = 10
    protected val name = "Bob"
    
text📋protected class Nested {
    public val friendName: String = "Alice"
}

}
class ChildClass : ParentClass() {    override val age = 25
text📋fun tryIt() {
    println("$name is $age")
    println("${Nested.friendName} friend for $name")
}

}
 

— Задача 2: Что выведет программа? Назовите вывод хотя бы на первых трёх итерациях. Есть ли тут ошибки? Если есть, то исправьте.

 fun main() = runBlocking {
    async { printSecond() }
    async { printFirst() }
}

fun printFirst() {    for (i in 0..10) {        delay(5)        println(“printFirst - $i”)    }}

 fun printSecond() {    for (i in 0..10) {        delay(10)        println(“printSecond - $i”)    }}