Languages

Язык Java и разработка Java-приложений, Романов В.Ю.

Язык Java и разработка Java-приложений, Романов В.Ю.

Вопросы к экзамену 2024 года

  1. Классы языка Java и их синтаксис. Члены класса. Статические члены класса. Поля и методы класса. Главный метод приложения. Конструкторы класса. Цепочки конструкторов. Блоки инициализации. Статические поля и методы классов. Инициализация статических полей класса.
  2. Пакеты классов и интерфейсов. Импорт классов и интерфейсов из других пакетов. Разновидности видимости классов и интерфейсов. Соглашения об именовании пакетов, классов, директорий и файлов при программировании на Java.
  3. Наследование полей и методов классов в языке Java. Перекрытие наследуемых методов. Использование конструкторов наследуемых классов. Разновидности видимости членов классов. Полиморфизм. Абстрактные классы. Конечные (final) классы.
  4. Вложенность классов. Статические вложенные и внутренние классы. Доступ к статическим вложенным классам. Внутренние классы. Доступ к внутренним классам. Внутренние локальные классы. Внутренние анонимные классы.
  5. Типы-перечисления. Поля и методы типов-перечислений.
  6. Стандартная библиотека коллекций языка Java. Интерфейсы, реализации и алгоритмы коллекций. Структура библиотеки коллекций. Коллекции, множества и списки. Использование реализаций интерфейсов коллекций. Карты (maps) в библиотеке коллекций. Использование различных реализаций карт. Итераторы карт и коллекций. Стандартные алгоритмы библиотеки для работы с коллекциями и массивами.
  7. Методы рефакторинга для преобразования структуры программы на языке Java. Рефакторинг типов. Рефакторинг иерархии наследования. Перемещение методов по иерархии наследования и между классами. Использование среды Eclipse для рефакторинга программы на языке Java.
  8. Родовые типы в языке Java. Назначение родовых типов. Не ковариантность родовых типов. Родовой тип wildcard. Родовые методы. Ограниченные родовые типы.
  9. Потоки байтового вывода языка Java. Назначение и возможности классов OutputStream, ByteArrayOutputStream, FileOutputStream, PipedOutputStream, FilterOutputStream, BufferedOutputStream, DataOutputStream, PrintStream. Потоки символьного вывода языка Java.
  10. Потоки ввода языка Java. Назначение и возможности классов InputStream, ByteArrayInputStream, FileInputStream, PipedInputStream, FilterInputStream, BufferedInputStream, DataInputStream. Потоки символьного ввода языка Java. Чтение данных из потока с помощью класса Scanner.
  11. Интернационализация программ в языке Java. Файлы текстовых ресурсов. Выбор языка пользователя для выдачи текстовых сообщений.
  12. Лямбда выражения в языке Java8. Замена анонимных классов лямбда выражениями. Функциональные интерфейсы. Синтаксис Lambda-выражений. Примеры функциональных интерфейсов из пакета java.util.function.
  13. Потоки в языке Java8. Определение потоков. Отличие операций потоков от операций коллекций. Обработка данных потока в конвейере. Методы для порождения потоков. Методы для преобразования потоков в конвейере. Преобразования в конце конвейера.
  14. Модули в Java 9. Назначение модулей. Синтаксис описания модулей. Зависимость от модулей. Экспорт пакетов модуля. Открытость модуля.
  15. Возможности версий Java9-Java17.
  16. Назначение библиотеки Standard Widget Toolkit. Основные классы библиотеки. Класс Display. Класс Shell. Класс Composite. Класс Control. Цикл событий (event loop).
  17. Пакеты библиотеки Standard Widget Toolkit. Класс SWT. Иерархия управляющих элементов. Конструкторы и стили управляющих элементов.
  18. Класс Widget библиотеки Standard Widget Toolkit. Освобождение ресурсов графики и управляющих элементов. Класс Control. Конструктор, стили, события, характерные методы класса Control.
  19. Класс Shell. Конструктор, стили, события, характерные методы класса Shell. Класс Composite. Конструктор, стили, события, характерные методы класса Composite. Класс Canvas. Конструктор, стили, события, характерные методы класса Canvas.
  20. Структурирование интерфейса пользователя с помощью классов TabFolder и TabItem. Конструктор, стили, события, характерные методы классов TabFolder и TabItem.
  21. Рисование графических элементов с помощью класса Graphics Context (GC) библиотеки Standard Widget Toolkit. Рисование линий, фигур, изображений графических файлов, курсоров. Задание их атрибутов представления на экране.
  22. Обработка событий в библиотеке Standard Widget Toolkit. Интерфейс обработчика события PaintListener для перерисовки изображений на экране.
  23. Интерфейс обработчика клавиатуры мыши MouseListener, вращения колеса MouseWheelListener, перемещения мыши MouseMoveListener.
  24. Списки библиотеки SWT в интерфейсе пользователя. Инициализация списков. Слушатели событий. Определение выбранного элемента списка.
  25. Кнопки библиотеки SWT в интерфейсе пользователя. Радио-кнопки. Инициализация кнопок. Слушатели событий. Определение выбора пользователя.