Описание курса:

Курс предназначен для студентов, которые хотят научиться программированию на основе платформы Java Standard Edition. Мы научим вас разработке и настройке приложений, познакомим с основными элементами технологии и конструкциями языка Java Standard Edition, основными архитектурными и проектировочными приемами в рамках платформы. Вы научитесь основам web-программирования и узнаете о сетевые возможности Java. Под руководством преподавателя самостоятельно напишите программный проект и представляете его.

После изучения курса Вы сможете:

  • Разрабатывать, проводить отладку приложений и внедрять аппликации в рамках платформы JavaSE
  • Использовать основные элементы технологии и конструкции языка JavaSE, архитектурные и проектировочные приемы в рамках платформы.
  • Перейти на расширенный курс обучения

Программа курса:

  • Общая характеристика языка Java
    • История языка Java
    • Байт-код
    • Виртуальная машина Java (JVM)
    • Трансляция, интерпретация и компиляция
    • JIT-компиляция
    • JDK и его структура
    • Команды JDK: javac, java, appletviewer, jar (en10)
    • Их использование и параметры
    • Поиск и загрузка классов
    • Создание и запуск первого приложения на Java
    • Выход из программы и завершения ее работы
    • Использование IDE Eclipse/NetBeans/Intellij IDEA для создания и выполнения программ
  • Типы данных и основные операции с ними
    • Алфавит языка
    • Комментарии
    • Ключевые слова
    • Типы данных: простые(примитивные) и по ссылке
    • Идентификаторы, выбор имен идентификаторов
    • Переменные и константы
    • Объявления и инициализация переменных
    • Область видимости и время жизни переменных
    • Операторы
    • Операции: арифметические, присваивания, отношения и логические
    • Преобразование и приведение числовых типов
    • Приоритет операций
    • Использование круглых скобок
  • Поток управления
    • Составной оператор (блок)
    • Условный оператор и его виды
    • Оператор switch
    • Циклы: for, while, do while
    • Бесконечные циклы
    • Прерывание потока управления, метки
    • Оператор goto и причины почему его не следует применять
  • Массивы
    • Объявления и инициализация массивов, в т.ч. анонимных
    • Линейные массивы
    • Итерация по элементам массива
    • Массивы и присвоения
    • Передача и возврат массивов в/из методов
    • Копирование массивов
    • Класс Arrays: заполнение, сравнение элементов и их сортировка
    • Поиск в массивах
    • Многомерные массивы, «неравные» массивы
    • Методы: аргументы переменной длины
    • Параметры командной строки
  • Строки
    • Класс String. Неизменные объекты
    • Хранение строк в памяти
    • Основные операции класса String (создание, конкатенация, сравнение, поиск символов иподстрок в строках и др.). Преобразование простых типов данных
    • Разбивка строк: класс StringTokenizer. Переменные объекты: классы StringBuffer и StringBuilder
    • Основные методы. StringBuffer vs StringBuilder
  • Введение в ООП. Объекты и классы
    • Поля и методы (определение, синтаксис объявления)
    • Спецификаторы доступа public и private
    • Поля классов: инициализация явная и по умолчанию, спецификатор final и константы
    • Доступ к полям и методам
    • Методы: параметры (ссылки и простые типы) и возвращаемые, использование set и get- методов, перезагрузки методов, правила перезагрузки
    • Объектная модель. Основные положения: абстрагирование, инкапсуляция, модульность, иерархия
    • Диаграммы классов UML.
    • Объекты и классы. Объекты. Определение (с примерами). Состояние. Поведение.
    • Конструкторы: конструкторы по умолчанию, вызов одного конструктора из другого
    • Блоки инициализации
    • Статические поля и методы: инициализация константы, статические блоки инициализации. Использование this для доступа к членам класса
    • Сбор мусора и удаления объектов
  • Отношение между объектами
    • Зависимости, их разновидности
    • Обобщение
    • Ассоциации
    • Реализации
    • Связи, их множественность
  • Наследование и полиморфизм
    • Наследование и полиморфизм как инструмент создания ПО. Суперкласс и подклассы, отношение обобщения, наследование в Java. Вызов конструкторов суперклассов, порядок вызовов. Ключевое слово super ()
    • Переопределение методов, правила переопределения. Наследование и статические поля и методы классов. Абстрактные классы и методы, – понятие, вызов конструкторов, реализация методов в субклассы
    • Интерфейсы. «Множественное» наследование. Определение и реализация интерфейсов. Расширение интерфейсов. Композиция как альтернатива множественному наследованию
    • Полиморфизм. Иерархия наследования
    • Преобразование и приведение типов. Использование instanceof. Отказ от наследования: терминальные (final) методы и классы. Включение как альтернатива множественному наследованию
    • Пакеты. Вложенность пакетов. Повторное использование кода и пакеты. Защита доступа.
    • Импорт: классов, статических методов и полей
  • Класс Object
    • Глобальный суперкласс Object
    • Методы equals (), hashCode (), toString (), finalize (), clone () и др
    • Правила реализации equals () и hashCode ()
    • Интерфейс Cloneable и его реализация
    • Клонирование: поверхностное и глубокое
  • Внутренние классы.
    • Синтаксис объявления
    • Создание объектов внутренних классов
    • Поля и методы внутренних классов
    • Вложенность внутренних классов и доступ к членам внешних классов
    • Ссылка this во внутреннем классе
    • Доступ к полям и методам внешнего класса с внутреннего
    • Внутренние классы и спецификаторы доступа
    • Вложенные интерфейсы
    • Применение внутренних классов
    • Внутренние локальные классы (Method-LocalInnerClasses)
    • Анонимные внутренние классы
    • Вложенные (внутренние статические) классы (static nested classes)
    • Создание экземпляров
    • Доступ к экземпляру внешнего класса
    • Компиляция программ с внутренними классами
  • Перечисление
    • Перечисление как классы. Методы values (), valueof (), name (), ordinal (). Константы, конструкторы, методы и поля
    • Перечисление и конструкция switch. Импорт членов перечислений
  • Работа с базами данных
    • Основы построения реляционных баз данных.
    • SQL
    • Нормальные формы. Запросы SELECT, INSERT, UPDATE, DELETE
    • JDBC
    • Driver, Connection, Statement, ResultSet, PrepareStatement
  • Обработка ошибок и исключения
    • Подходы к обработке ошибок времени выполнения
    • Понятие исключения и исключительной ситуации
    • Иерархия классов исключений в Java
    • Контролируемые (что проверяются) и неконтролируемые (не проверяются) исключения
    • Генерация исключительной ситуации и оператор throws
    • Объявления контролируемых исключений, ключевое слово throws
    • Throws и перезагрузки методов
    • Перехват исключений
    • Перехват «всех» исключений
    • Обработка исключений
    • Повторная генерация исключений
    • Блок finally: освобождение ресурсов
    • Создание собственной иерархии исключений
    • Регистрация ошибок, логирования: логеры, уровень логгер, уровень сообщений, обработчики (объекты подкласса java.util.logging.Handler)
    • Пример
  • Система ввода-вывода
    • Иерархия классов потокового ввода-вывода:
    • Потоки ввода/вывода, механизм работы с потоками, иерархия потокового ввода-вывода
    • Субклассы FilterOutputStream и FilterInputStream
    • Байтовые потоки
    • Символьные потоки
    • Класс File. Класс RandomAccessFile
    • Сериализация и десериализация объектов: понятие, назначение, реализация
    • Пример
  • Desktop-приложения
    • SWING, AWT. Пример простого приложения с GUI
    • Обработка событий
  • Классы коллекций
    • Понятие абстрактного типа данных (АТД)
    • Структуры данных: списки, стеки, множества, дерева, карты
    • Обход коллекций: интерфейсы Iteratorта и ListIterator, цикл «foreach»
    • Компараторы
    • Класс Collections: поиск и сортировка элементов, заполнения, синхронизование представления, неизменные представления и др.
  • Знакомство с XML
    • Понятие формальной корректности и допустимости.
    • Парсинг, хранение состояние объектов
    • Примеры
  • Многопоточность
    • Понятие потока. Особенности параллельного выполнения
    • Потоки-демоны
    • Приоритеты потоков. Метод yield ()
    • Состояние потока: создание потоков, -runnable и -runninig – потоки
  • Классы BigInteger и BigDecimal. Основные операции
    • Документирование кода
    • Включение комментариев
    • Документирование пакетов
    • Дескрипторы общего назначения
    • Комментарии к классам, методам и полей
    • Использование javadoc
  • Универсальные типы
    • Параметризованные типы: классы и интерфейсы. Параметры типа
    • Ограничения, наложенные на параметризованные типы: простые типы, инстанцирование, суперкласс, исключение.
    • Параметризованные типы и JVM
 

Минимальные требования:

  • Базовое понимание ООП
  • Наличие собственного ноутбука для занятий в аудиториях

* Указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!