Skip to content

Latest commit

 

History

History
65 lines (61 loc) · 4.69 KB

exam.md

File metadata and controls

65 lines (61 loc) · 4.69 KB

Зачёт

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

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

  • удовл (3-4) - пять задач + ответы на вопросы
  • хор (5-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.
  17. Приведение типов, Boxing/unboxing.
  18. Арифметика (+битовые операции): операции, приоритеты, сокращённые формы.
  19. Особенности control flow в Джаве: break на метку.
  20. foreach, Iterable
  21. Методы класса String.
  22. Многопоточность: synchronized-блок, synchronized-метод.
  23. двойная семантика volatile
  24. Collections.synchronizedMap() vs ConcurrentHashMap vs Hashtable
  25. Пакет java.io: зачем все эти классы, что использовать для ввода-вывода.
  26. StringBuilder vs StringBuffer vs String.concat vs + operator

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

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