Вопросы на собеседование на позицию Android Developer
@dwajotПервое Собеседование.
1. В чем заключается принцип полиморфизма?
2. Устройство HashMap (как вставляются элементы, когда возникают коллизии и как их решать).
3. Жизненный цикл активити.
4. Жизненный цикл фрагмента.
5. 4 Основных компонента андроид.
Второе Собеседование.
1. Принципы ООП.
2. Иерархия исключений (все уровни абстракции).
3. Как обрабатываются исключения?
4. Иерархия коллекций (все уровни абстракции).
5. Суть абстракции.
6. Инструменты асинхронности в андроид.
7. Чем Looper отличается от AsyncTask?
8. Написать класс singleton.
9. Сервисы (как создаются, в каком потоке выполняются).
10. Написать все способы передачи информации с сервиса в активити.
11. Принцип работы Handler.
12. Преимущества работы с ResyclerView.
13. Как бы ты спроектировал приложение клиент для VK.
Четвертое собеседование.
1. Принципы ООП.
2. В чем заключается принцип полиморфизма?
3. Жизненный цикл активити.
4. String (mutable или immutable, так же когда не желательно использовать).
5. AsycTask (основные методы, как передать информация на UI).
6. В чем отличия между Internal и External memory в андроид?
7. ListView рассказать преимущества над LinerLayout.
8. ResyclerView (как хранятся элементы во ViewHolder, сколько хранится элементов если на экране отображается 10 штук, а список на 100 эл).
9. Можно ли перегружать конструктор в фрагменте?
10. Можно ли создавать конструктор абстрактного класса?
11. Может ли абстрактный класс содержать не абстрактные методы?
12. Может ли обычный класс содержать абстрактные методы?
13. Коды HTTP запросов и рассказать что какая группа означает.
14. Чем отличается GET от POST запроса?
15. Каким образом можно связать таблицы в SQL?
16. Broadcast receiver (способы регистрации, можно ли отследить изменения включения в телефоне).
17. Как создать сервис, который не будет уничтожен при нехватке оперативной памяти?
18. Rest API (использовал ли на практике?).
19. Паттерн MVP (реализация и преимущества использования).
Пятое собеседование.
1. Написать любую тебе известную сортировку массива данных.
2. Как бы ты загрузил в андроид приложение JSON на 500к элементов?
3. Как бы ты этот JSON записал в БД?
4. Как 500к элементов отображать пользователю в списке?
5. В чем преимущества Realm по отношению SqlLite?
6. String, StringBulider, StringBuffer – отличия.
7. Что означает эта конструкция – private final Object lock = new Object(); synchronize (lock) {}
8. В чем отличия паттерна MVC и MVP?
9. В чем преимущества использования Loaders?
10. Обвертки в java – что из себя представляют и зачем используются.
11. Как можно произвести синхронизацию в java – все известные тебе способы.
12. Создание своих исключений – когда применяется и зачем.
13. Как пробросить несколько разных видов исключений в другой метод с возможностью их там интерпретировать?
14. Опиши структуру своего проекта – как взаимодействуют между собой основные компонеты.
15. Сколько в андроид выделяется памяти для одного приложения?
16. Если объекты ссылаются друг на друга, то удалит ли их сборщик мусора?