Бакалавриат
2017/2018
Java-технологии в разработке приложений
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Когда читается:
2-й курс, 3, 4 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Лейкин Максим Валентинович
Язык:
русский
Кредиты:
4
Контактные часы:
76
Программа дисциплины
Аннотация
Язык программирования Java был разработан в начале 90-х гг. XX века в компании Sun Microsystems. Основным требованием к разрабатываемому языку была возможность выполнять код на различных аппаратных платформах без его перекомпиляции и пересборки. Язык в значительной степени унаследовал синтаксис C++, но имеет упрощенную по сравнению с С++ объектную модель и меньше возможностей напрямую работать с аппаратной частью. Приложения Java компилируются в специальный промежуточный машинный код (байт-код) и запускаются под управлением виртуальной Java-машины. Помимо этого к основным особенностям языка можно отнести: полную объектную ориентированность, встроенный «сборщик мусора», дополнительные средства для повышения надежности и стабильности кода.
Цель освоения дисциплины
- Выделять Java среди других языков программирования
- Называть основные свойства и отличительные особенности Java
- Применять синтаксис Java при разработке программ
- рименять библиотеку классов Java при разработке программ
Планируемые результаты обучения
- Выделять Java среди других языков программирования
- Называть основные свойства и отличительные особенности Java
- Применять синтаксис Java при разработке программ
- Применять параметризацию при написании 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-программы.
- Параметризация типов в JavaПараметризация классов. Параметризация методов. Ограниченная параметризация. Подтипизация. Универсальные символы (wildcards) Очистка типов.
- Потоки и лямбда-выражения.Функциональные интерфейсы. Лямбда-выражения. Stream API. Конвейерные и терминальные потоки.
- Библиотека классов JavaОболочки примитивных типов. Управление памятью. Класс System. Загрузка классов. Классы String и StringBuffer. Другие полезные классы(java.lang).
- КоллекцииСтруктура коллекций. Интерфейсы: Collection, List, Set, SortedSet, Map, SortedMap. Абстрактные классы-коллекции. Итераторы и компараторы. Списки: ArrayList, LinkedList. Отображения: HashMap, TreeMap. Множества: HashSet, TreeSet. Классы: Vector, Arrays, HashTable. Алгоритмы в коллекциях и их эффективность.
- Аннотации и рефлексия в JavaМеханизм аннотаций. Reflection API
- Обработка исключенийИсключения в Java. Ключевые слова: try, catch, finally. Стек вызовов. Типы исключений (обязательные и необязательные к обработке). Ручное «выбрасывание» исключений (throw, throws). Условие “Catch or specify”.
- Ввод-выводБайтовые и символьные потоки. Классы InputStream и OutputStream и их непосредственные подклассы. Классы Reader и Writer и их непосредственные подклассы. Буферизованный ввод-вывод. Класс File, работа с файловой системой. Сериализация.
- Многопоточность в JavaСоздание и завершение потоков в Java. Взаимодействие потоков и синхронизация. Мониторы и wait-set блоки. Пакет java.concurrency (Executors, Atomics, Queues, Locks, Concurrent collections)
- Шаблоны проектирования в JavaПонятие о шаблонах проектирования. Смысл использования шаблонов. Виды шаблонов. Примеры на языке Java.
- Библиотека RxJavaObservables. Subscribers. Schedulers. Operators.
Промежуточная аттестация
- Промежуточная аттестация (4 модуль)0.7 * домашние задания + 0.3 * сам работа
Список литературы
Рекомендуемая основная литература
- Виссер Дж. - Разработка обслуживаемых программ на языке Java - Издательство "ДМК Пресс" - 2017 - 182с. - ISBN: 978-5-97060-447-2 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/105834
- Вязовик Н.А. - Программирование на Java - Национальный Открытый Университет "ИНТУИТ" - 2016 - 603с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100405
- Кишори Шаран - Java 9. Полный обзор нововведений. Для быстрого ознакомления и миграции - Издательство "ДМК Пресс" - 2018 - 544с. - 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
Рекомендуемая дополнительная литература
- Монахов В.В. - Язык программирования Java и среда NetBeans - Национальный Открытый Университет "ИНТУИТ" - 2016 - 450с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100544