Skip to content

Latest commit

 

History

History
64 lines (60 loc) · 4.59 KB

exam.md

File metadata and controls

64 lines (60 loc) · 4.59 KB

Зачёт

Зачёт дифференцированный. Будет состоять из семи домашних заданий и финального очного зачёта.

##Критерий оценки

  • удовл (3-4) - четыре задачи + ответы на вопросы
  • хор (5-6) - пять задач + ответы на вопросы
  • хор (7) - шесть задач + ответы на вопросы
  • отл (8-9) - семь задач + ответы на вопросы
  • отл (10) - отл(9) + выполненные пункты со звёздочкой в заданиях

##Вопросы для подготовки Вопросы на тройку

  1. Примитивные типы данных.
  2. Семантика final.
  3. Сборщик мусора: что это такое, зачем он в Джаве.
  4. this, super.
  5. Статические поля, методы, классы.
  6. Массивы, создание многомерных массивов, вложенные массивы переменной длины.
  7. Методы класса Object. Когда вызывается toString()? Контракт equals()/hashCode().
  8. extends, множественное наследование в Джаве, единый общий предок.
  9. Интерфейсы. Чем отличаются от абстрактных классов.
  10. Исключения: checked/unchecked, иерархия, try/catch/finally, try-with-resources, throw, throws.
  11. Атрибуты доступа: public/private/protected/package.
  12. Конструкторы: конструкторы по умолчанию, наследуемость конструкторов.
  13. Порядок инициализации объектов и вызова конструкторов базовых классов.
  14. Геттеры/сеттеры: что, naming convention, зачем нужны?
  15. Перегрузка методов, разрешение перегрузки.
  16. abstract vs interface, default методы.
  17. Приведение типов, Boxing/unboxing.
  18. Арифметика (+битовые операции): операции, приоритеты, сокращённые формы.
  19. foreach, Iterable
  20. Методы класса String.
  21. Многопоточность: synchronized-блок, synchronized-метод.
  22. двойная семантика volatile
  23. Collections.synchronizedMap() vs ConcurrentHashMap vs Hashtable
  24. Пакет java.io: зачем все эти классы, что использовать для ввода-вывода.
  25. StringBuilder vs StringBuffer vs String.concat vs + operator

Вопросы на четверку/пятерку

  1. Что такое ковариантность массивов? Зачем она нужна? Есть ли ковариантность у дженерик-контейнеров?
  2. Дженерики, синтаксис, выведение типа.
  3. Лямбда-функции: синтаксис объявления, как принимать, захват имен.
  4. Возможности reflection.
  5. wait/notify, condition
  6. Аннотации: как объявлять и использовать, как получать в рантайме.
  7. Перечисления (Enum): синтаксис, реализация.
  8. Тестирование с помощью JUnit: модульное тестирование, api.
  9. ArrayList vs LinkedList: сложности различных операций
  10. Множества в java: LinkedHashSet, HashSet, TreeSet.
  11. TreeMap vs HashMap
  12. Сортировка списка строк в обратном лексикографическом порядке.
  13. Оставить из списка только уникальные элементы в исходном порядке
  14. Отсортировать список строк по возрастанию без учёта регистра
  15. Иерархия коллекций: Iterable, Collection, List, Set, Map и их реализации.
  16. SoftReference, WeakReference, WeakHashMap, PhantomReference
  17. Внутренние классы: синтаксис, реализация.
  18. ThreadLocal, Lock, ReadWriteLock.
  19. CyclicBarier, CountDownLatch
  20. Взаимные блокировки и как с ними бороться.
  21. Race condition, data race, thread starvation, live lock.
  22. Thread, Runnable, Callable, ExecutorService, Future: запуск и остановка потоков