Описание Курса:
Курс помогает освоить современный язык программирования. Рассматриваемые темы: синтаксис языка программирования Java, объектно-ориентированное программирование на Java, средства разработки, отладки и тестирования. Основная цель курса – получение базовых навыков программирования на Java. Курс проводится в дистанционной форме, что позволяет гибко планировать график обучения.
Аудитория:
Начинающие программисты, а также те, кто хочет изучить язык Java «с нуля» но владеет базовыми навыками в программировании на других языках
Предварительная подготовка:
Понимание принципов функционирования операционной системы (разрядность ОС, хранение файлов и папок и определение прав доступа на файлы и папки, использование оперативной памяти), базовый опыт программирования
Содержание:
1.Общие представления о языке Java
- Java и другие языки программирования.
- Виртуальная Java-машина, байт-код.
- JIT-компиляция.
- Десятичные и шестнадцатеричные цифры и целые числа.
- Зарезервированные слова.
- Управляющие последовательности.
- Переменные и типы.
- Процедурное и объектно-ориентированное программирование.
- Инкапсуляция.
2.Введение в среду разработки NetBeans
- Установка среды NetBeans.
- Компиляция файлов проекта и запуск приложения.
- Jar-файлы.
- Структура проекта NetBeans.
- Свойства компонентов.
3.Примитивные типы данных и операторы для работы с ними
- Булевый (логический) тип.
- Целые типы, переменные, константы.
- Вещественные типы и класс Math.
- Правила явного и автоматического преобразования типа при работе с числовыми величинами.
- Оболочечные классы. Упаковка (boxing) и распаковка (unboxing).
- Приоритет операторов.
4.Управляющие конструкции
- Условный оператор if.
- Оператор выбора switch.
- Операторы инкремента ++ и декремента --.
- Оператор цикла for.
- Оператор цикла while - цикл с предусловием.
- Оператор цикла do...while - цикл с постусловием.
- Операторы прерывания continue, break, return, System.exit.
5.Начальные сведения об объектном программировании
- Наследование и полиморфизм.
- Функции. Модификаторы. Передача примитивных типов в функции.
- Локальные и глобальные переменные. Модификаторы доступа и правила видимости. Ссылка this.
- Передача ссылочных типов в функции. Проблема изменения ссылки внутри подпрограммы.
- Наследование. Суперклассы и подклассы. Переопределение методов. Правила видимости. Зарезервированное слово super.
- Статическое и динамическое связывание методов.
- Базовый класс Object.
- Конструкторы.
- Удаление неиспользуемых объектов и метод finalize.
- Перегрузка методов.
- Приведение и проверка типов.
6.Важнейшие объектные типы (часть 1)
- Массивы.
- Коллекции, списки, итераторы.
- Работа со строками в Java. Строки как объекты. Классы String, StringBuffer и StringBuilder.
- Типы-перечисления (enum).
- Дата и время.
7.Важнейшие объектные типы (часть 2)
- Работа с графикой.
- Исключительные ситуации.
- Обработка исключительных ситуаций.
- Иерархия исключительных ситуаций.
- Объявление типа исключительной ситуации и оператор throw.
- Объявление метода, который может возбуждать исключительную ситуацию. Зарезервированное слово throws.
- Работа с файлами и папками.
8.Интерфейсы
- Проблемы множественного наследования классов.
- Интерфейсы.
- Отличия интерфейсов от классов.
- Проблемы наследования интерфейсов.
- Композиция — еще одна альтернатива множественному наследованию.
9.Многопоточное программирование и многоядерные системы
- Потоки выполнения (threads) и синхронизация.
- Преимущества и проблемы при работе с потоками выполнения.
- Синхронизация по ресурсам и событиям.
- Класс Thread и интерфейс Runnable.
- Создание и запуск потока выполнения.
- Поля и методы, заданные в классе Thread.
10.Отладка и профилировка программ
- Отладка приложений.
- Команды режима пошагового выполнения.
- Пример отладки неправильно работающего приложения.
- Принцип "презумпции виновности" и тестирование классов.
- Профилировка приложений.
- Профилировка отдельных методов.
- Настройка профилировщика "на лету". Точки профилировки.
- Нахождение проблем с использованием памяти — телеметрия.
- Профилировка использования памяти классами.
Приобретаемые навыки:
Знание синтаксиса языка. Понимание принципов объектно-ориентированного программирования. Умение разрабатывать многопоточные приложения для создания высоконагруженных систем. Умение работать с основными классами Java. Умение отлаживать программу и искать в ней ошибки. Умение разрабатывать консольные и десктоп приложения на Java.
Документы об окончании курса / Материалы и сертификаты: