Вопросы по Android
1. Назови основные компоненты Android-приложения (Activity, Service, BroadcastReceiver, ContentProvider) и объясни, почему они являются точками входа в приложение.
2. Перечисли основные методы жизненного цикла Activity.
3. Какие существуют способы сохранения состояния в Android?
4. Какие типы данных можно помещать в Intent?
5. Объясни разницу между интерфейсами Serializable и Parcelable. Почему в Android предпочтительнее использовать Parcelable?
Вопросы по Kotlin/Java
6. Перечисли основные методы класса Any.
7. Назови модификаторы доступа для элементов класса в Kotlin.
8. Какие коллекции в Kotlin тебе известны?
9. Чем Map отличается от других коллекций (List, Set)?
10. Приведи примеры реализаций коллекций (ArrayList, LinkedList, HashMap, HashSet).
Вопросы по синхронизации
11. Какие способы синхронизации доступа к переменной в многопоточной среде тебе известны?
12. Расскажи об особенностях использования ключевого слова volatile.
13. Что может произойти с программой, если не синхронизировать доступ к общей переменной из разных потоков? Могут ли возникнуть критические ситуации, такие как deadlock?
Вопросы по работе с сетью
14. Опиши, какие шаги необходимо предпринять, чтобы выполнить сетевой запрос в новом Android-проекте.
15. Какие особенности нужно учитывать со стороны Android при работе с сетью?
16. Почему не рекомендуется выполнять сетевые запросы напрямую в Activity на главном потоке (main thread)?
Вопросы по UI
17. Для чего используется RecyclerView? Почему его применение предпочтительнее ListView?
18. Какие оптимизации и сильные стороны RecyclerView ты можешь назвать (например, использование пула для переиспользования View, ItemAnimator, ItemDecorator и т.д.)?
19. Как RecyclerView работает с большими списками данных? Рендерит ли он сразу все элементы?
Задача
Практика20. Задача: Написать функцию, которая принимает на вход массив чисел (Int) и возвращает boolean, если в массиве есть два подряд идущих одинаковых элемента.
fun function(list: List): Boolean {
}