• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Java Programming

2019/2020
Academic Year
ENG
Instruction in English
4
ECTS credits
Course type:
Elective course
When:
2 year, 3, 4 module

Instructor

Программа дисциплины

Аннотация

Язык программирования Java был разработан в начале 90-х гг. XX века в компании Sun Microsystems. Основным требованием к разрабатываемому языку была возможность выполнять код на различных аппаратных платформах без его перекомпиляции и пересборки. Язык в значительной степени унаследовал синтаксис C++, но имеет упрощенную по сравнению с С++ объектную модель и меньше возможностей напрямую работать с аппаратной частью. Приложения Java компилируются в специальный промежуточный машинный код (байт-код) и запускаются под управлением виртуальной Java-машины. Помимо этого к основным особенностям языка можно отнести: полную объектную ориентированность, встроенный «сборщик мусора», дополнительные средства для повышения надежности и стабильности кода.
Цель освоения дисциплины

Цель освоения дисциплины

  • Целями освоения данной дисциплины являются как закрепление теоретических знаний в области объектно-ориентированного программирования, так и получение практических навыков программирования на языке JAVA с использованием стандартных средств раз-работки.
Результаты освоения дисциплины

Результаты освоения дисциплины

  • Выделять Java среди других языков программирования
  • Называть основные свойства и отличительные особенности Java
  • Применять синтаксис Java при разработке программ
  • Создавать классы, методы и интерфейсы на языке Java
  • Проверять возникновение исключений в Java-коде
  • Применять базовую библиотеку ввода-вывода
  • Применять параметризацию при написании Java-программ
  • Применять структуру коллекций при написании Java-кода
  • Применять библиотеку классов Java при разработке программ
  • Создавать потоки, решать прикладные задачи с помощью многопоточности
  • Применять правильные шаблоны при проектировании Java-программ
  • Применять библиотеку RxJava при разработке Java-программ
  • Понимать механизм аннотаций и рефлексии в Java
  • Применять бибилиотеку Stream API и лямбда-выражения при разработке Java-программ
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение
    Как и почему появился язык Java? Основные ключевые особенности языка (кросс-платформенность, байткод, полная объектная ориентированность, надежность и безопасность кода) Основные инструменты разработки на Java (JSDK, Eclipse, NetBeans).
  • Синтаксис Java
    Идентификаторы. Константы. Комментарии. Ключевые слова. Блоки кода. Простые типы данных (byte, short, int, long, float, double, char, boolean). Объявление и инициализация переменных. Время жизни и область действия переменных. Автоматическое и явное преобразование типов. Массивы. Операции. Управляющие операторы (if, switch, while, do while, for, break, continue, return).
  • Классы, интерфейсы, пакеты
    Создание объектов. Конструкторы. Ссылочные переменные. Методы. Перегрузка методов. Модификатор static. Ссылочная переменная this. Вложенные классы. Анонимные вложенные классы. Наследование. Порядок вызова конструкторов при наследовании. Динамическая диспетчеризация ссылок. Переопределение методов. Абстрактные методы и классы. Интерфейсы. Объявление и реализация интерфейсов. Модификатор final. Класс Object. Аннотации. Перечисления. Пакеты. Уровни доступа к данным с учетом пакетов. Импортирование имен классов. Архитектура Java-программы.
  • Ввод-вывод
    Байтовые и символьные потоки. Классы InputStream и OutputStream и их непосредственные подклассы. Классы Reader и Writer и их непосредственные подклассы. Буферизованный ввод-вывод. Класс File, работа с файловой системой. Сериализация.
  • Обработка исключений
    Исключения в Java. Ключевые слова: try, catch, finally. Стек вызовов. Типы исключений (обязательные и необязательные к обработке). Ручное «выбрасывание» исключений (throw, throws). Условие “Catch or specify”.
  • Параметризация типов в Java
    Параметризация классов. Параметризация методов. Ограниченная параметризация. Подтипизация. Универсальные символы (wildcards) Очистка типов.
  • Библиотека классов Java
    Оболочки примитивных типов. Управление памятью. Класс System. Загрузка классов. Классы String и StringBuffer. Другие полезные классы(java.lang).
  • Коллекции
    Структура коллекций. Интерфейсы: Collection, List, Set, SortedSet, Map, SortedMap. Абстрактные классы-коллекции. Итераторы и компараторы. Списки: ArrayList, LinkedList. Отображения: HashMap, TreeMap. Множества: HashSet, TreeSet. Классы: Vector, Arrays, HashTable. Алгоритмы в коллекциях и их эффективность.
  • Многопоточность в Java
    Создание и завершение потоков в Java. Взаимодействие потоков и синхронизация. Мониторы и wait-set блоки. Пакет java.concurrency (Executors, Atomics, Queues, Locks, Concurrent collections)
  • Шаблоны проектирования в Java
    Понятие о шаблонах проектирования. Смысл использования шаблонов. Виды шаблонов. Примеры на языке Java.
  • Библиотека RxJava
    Observables. Subscribers. Schedulers. Operators.
  • Аннотации и рефлексия в Java
    Механизм аннотаций. Reflection API
  • Потоки и лямбда-выражения.
    Функциональные интерфейсы. Лямбда-выражения. Stream API. Конвейерные и терминальные потоки.
Элементы контроля

Элементы контроля

  • неблокирующий Created with Sketch. Практические самостоятельные работы
  • блокирует часть оценки/расчета Created with Sketch. Тестовая работа
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (4 модуль)
    0.6 * Практические самостоятельные работы + 0.4 * Тестовая работа
Список литературы

Список литературы

Рекомендуемая основная литература

  • - Вязовик Н.А. — Программирование на Java - Национальный Открытый Университет "ИНТУИТ" - 2016 - ISBN: - Текст электронный // ЭБС Лань - URL: https://e.lanbook.com/book/100405
  • - Кишори Шаран — Java 9. Полный обзор нововведений. Для быстрого ознакомления и миграции - Издательство "ДМК Пресс" - 2018 - ISBN: 978-5-97060-575-2 - Текст электронный // ЭБС Лань - URL: https://e.lanbook.com/book/108130
  • Пруцков, А.В. Программирование на языке Java. Введение в курс с примерами и практическими заданиями : учебник / А.В. Пруцков. — М. : КУРС, 2018.- 208 с. - ISBN 978-5-906923-51-6. - Режим доступа: http://znanium.com/catalog/product/1017180

Рекомендуемая дополнительная литература

  • - Нуркевич Т., Кристенсен Б. — Реактивное программирование с применением RxJava - Издательство "ДМК Пресс" - 2017 - ISBN: 978-5-97060-496-0 - Текст электронный // ЭБС Лань - URL: https://e.lanbook.com/book/100907
  • - Уорбэртон Р. — Лямбда-выражения в Java 8. Функциональное программирование – в массы - Издательство "ДМК Пресс" - 2014 - ISBN: 978-5-94074-919-6 - Текст электронный // ЭБС Лань - URL: https://e.lanbook.com/book/93568