Lesson | Title << | Date |
---|---|---|
- | ||
Lecture 12 hours 21 minute | Что такое Java? История создания
Первая лекция начинается с рассказа о событиях, происходивших задолго
до официального объявления Java. Хотя эта технология на сегодняшний день разительно
отличается от того, как задумывали ее создатели, однако многие особенности берут
свое начало от решений, принятых в то время. Будут освещены все основные этапы
создания, появления и развития Java. Также в лекции излагаются необходимые базовые
знания для разработчиков – основные свойства платформы Java, и почему она является
платформой, а не просто языком программирования. Что входит в пакет разработчика,
где найти нужную информацию, какие дополнительные продукты предоставляет Sun, чем
различаются Java и Java Script – ответы на эти и другие общие вопросы находятся в первой лекции.
Contents | - |
Тест 124 minutes | - | |
Lecture 21 hour 17 minutes | Основы объектно-ориентированного программирования
В этой лекции излагается основная концепция объектно-ориентированного подхода (ООП) к
проектированию программного обеспечения. Поскольку в Java почти все типы (за исключением
восьми простейших) являются объектными, владение ООП становится необходимым условием для
успешного применения языка. Лекция имеет вводный, обзорный характер. Для более детального
изучения предлагается список дополнительной литературы и Internet-ресурсов.
Contents | - |
Тест 224 minutes | - | |
Lecture 31 hour 13 minutes | Лексика языка
Лекция посвящена описанию лексики языка Java.
Лексика описывает, из чего состоит текст программы, каким образом он записывается и на какие простейшие слова (лексемы) компилятор разбивает программу при анализе. Лексемы (или tokens в английском варианте) – это основные "кирпичики", из которых строится любая программа на языке Java.
Эта тема раскрывает многие детали внутреннего устройства языка, и невозможно написать ни одной строчки кода, не затронув ее. Именно поэтому курс начинается с основ лексического анализа.
Contents | - |
Тест 324 minutes | - | |
Lecture 41 hour 32 minutes | Типы данных
Типы данных определяют основные возможности любого языка. Кроме того, Java является строго типизированным языком, а потому четкое понимание модели типов данных очень помогает в написании качественных программ. Лекция начинается с введения понятия переменной, на примере которой иллюстрируются особенности применения типов в Java. Описывается разделение всех типов на простейшие и ссылочные, операции над значениями различных типов, а также особый класс Class, который играет роль метакласса в Java.
Contents | - |
Тест 424 minutes | - | |
Lecture 51 hour 15 minutes | Имена. Пакеты
В этой лекции рассматриваются две темы – система именования элементов языка в Java и пакеты (packages), которые являются аналогами библиотек из других языков. Почти все конструкции в Java имеют имя для обращения к ним из других частей программы. По ходу изложения вводятся важные понятия, в частности – область видимости имени. При перекрытии таких областей возникает конфликт имен. Для того, чтобы минимизировать риск возникновения подобных ситуаций, описываются соглашения по именованию, предложенные компанией Sun.
Пакеты осуществляют физическую и логическую группировку классов и становятся необходимыми при создании больших систем. Вводится важное понятие модуля компиляции и описывается его структура.
Contents | - |
Тест 524 minutes | - | |
Lecture 61 hour 25 minutes | Объявление классов
Центральная тема лекции – объявление классов, поскольку
любое Java-приложение является набором классов.
Первый рассматриваемый вопрос – система разграничения доступа в Java.
Описывается, зачем вообще нужно управление доступом в ОО-языке программирования
и как оно осуществляется в Java. Затем подробно рассматривается структура объявления
заголовка класса и его тела, которое состоит из элементов (полей и методов), конструкторов
и инициализаторов. Дополнительно описывается сигнатура метода main, с которого
начинается работа Java-приложения, правила передачи параметров различных типов
в методы, перегруженные методы.
Contents | - |
Тест 624 minutes | - | |
Lecture 71 hour 2 minutes | Преобразование типов
Эта лекция посвящена вопросам преобразования типов. Поскольку Java – язык строго типизированный, компилятор и виртуальная машина всегда следят за работой с типами, гарантируя надежность выполнения программы. Однако во многих случаях то или иное преобразование необходимо осуществить для реализации логики программы. С другой стороны, некоторые безопасные переходы между типами Java позволяет осуществлять неявным для разработчика образом, что может привести к неверному пониманию работы программы.
В лекции рассматриваются все виды преобразований, а затем все ситуации в программе, где они могут применяться. В заключение приводится начало классификации типов переменных и типов значений, которые они могут хранить. Этот вопрос будет подробнее рассматриваться в следующих лекциях.
Contents | - |
Тест 724 minutes | - | |
Lecture 81 hour 5 minutes | Объектная модель в Java
Эта лекция является некоторым отступлением от рассмотрения
технических особенностей Java и посвящена в основном изучению ключевых
свойств объектной модели Java, таких как статические элементы, абстрактные
методы и классы, интерфейсы, являющиеся альтернативой множественного
наследования. Без этих мощных конструкций язык Java был бы неспособен
решать серьезные задачи.
В заключение рассматриваются принципы работы полиморфизма для полей и
методов, статических и динамических. Уточняется классификация типов переменных
и типов значений, которые они могут хранить.
Contents | - |
Тест 824 minutes | - | |
Lecture 954 minutes | Массивы
Лекция посвящена описанию массивов в Java. Массивы издавна присутствуют в языках программирования, поскольку при выполнении многих задач приходится оперировать целым рядом однотипных значений.
Массивы в Java – один из ссылочных типов, который, однако, имеет особенности при инициализации, создании и оперировании со своими значениями. Наибольшие различия проявляются при преобразовании таких типов. Также объясняется, почему многомерные массивы в Java можно (и зачастую более правильно) рассматривать как одномерные. Завершается классификация типов переменных и типов значений, которые они могут хранить.
В заключение рассматривается механизм клонирования Java, позволяющий в любом классе описать возможность создания точных копий объектов, порожденных от него.
Contents | - |
Тест 924 minutes | - | |
Lecture 101 hour 18 minutes | Операторы и структура кода. Исключения
После ознакомления с типами данных в Java, правилами объявления классов и интерфейсов, а также с массивами, из базовых свойств языка остается рассмотреть лишь управление ходом выполнения программы. В этой лекции вводятся важные понятия, связанные с данной темой, описываются метки, операторы условного перехода, циклы, операторы break и continue и другие.
Следующая тема посвящена более концептуальным механизмам Java, а именно работе с ошибками или исключительными ситуациями. Рассматриваются причины возникновения сбоев, способы их обработки, объявление собственных типов исключительных ситуаций. Описывается разделение всех ошибок на проверяемые и непроверяемые компилятором, а также ошибки времени исполнения.
Contents | - |
Тест 1024 minutes | - | |
Lecture 111 hour 54 minutes | Пакет java.awt
Эта лекция начинает рассмотрение базовых библиотек Java, которые являются неотъемлемой частью языка и входят в его спецификацию, а именно описывается пакет java.awt, предоставляющий технологию AWT для создания графического (оконного) интерфейса пользователя – GUI. Ни одна современная программа, предназначенная для пользователя, не обходится без удобного, понятного, в идеале – красивого пользовательского интерфейса. С самой первой версии в Java существует специальная технология для создания GUI. Она называется AWT, Abstract Window Toolkit. Именно о ней пойдет речь в этой лекции. Пакет java.awt претерпел, пожалуй, больше всего изменений с развитием версий Java. Мы рассмотрим дерево компонентов, доступных программисту, специальную модель сообщений, позволяющую гибко обрабатывать пользовательские действия, и другие особенности AWT – работа с цветами, шрифтами, отрисовка графических примитивов, менеджеры компоновки и т.д. Хотя технология AWT включает в себя гораздо больше, чем можно изложить в рамках одной лекции, здесь собраны все необходимые сведения для создания полноценного оконного интерфейса.
Contents | - |
Тест 1124 minutes | - | |
Lecture 121 hour 6 minutes | Потоки выполнения. Синхронизация
В этой лекции завершается описание ключевых особенностей Java. Последняя тема раскрывает особенности создания многопоточных приложений - такая возможность присутствует в языке, начиная с самых первых версий.
Первый вопрос - как на много- и, самое интересное, однопроцессорных
машинах выполняется несколько потоков одновременно и для чего они
нужны в программе. Затем описываются классы, необходимые для создания,
запуска и управления потоками в Java. При одновременной работе с
данными из нескольких мест возникает проблема синхронного доступа,
блокировок и, как следствие, взаимных блокировок. Изучаются все
механизмы, предусмотренные в языке для корректной организации такой логики работы.
Contents | - |
Тест 1224 minutes | - | |
Lecture 131 hour 29 minutes | Пакет java.lang
В этой лекции рассматривается основная библиотека Java – java.lang. В ней содержатся классы Object и Class, классы-обертки для примитивных типов, класс Math, классы для работы со строками String и StringBuffer, системные классы System, Runtime и другие. В этом же пакете находятся типы, уже рассматривавшиеся ранее,– для работы с исключительными ситуациями и потоками исполнения.
Contents | - |
Тест 1324 minutes | - | |
Lecture 141 hour 36 minutes | Пакет java.util
Эта лекция посвящена пакету java.util, в котором содержится множество вспомогательных классов и интерфейсов. Они настолько удобны, что практически любая программа использует эту библиотеку. Центральную часть в изложении занимает тема контейнеров, или коллекций, - классов, хранящих упорядоченные ссылки на ряд объектов. Они были существенно переработаны в ходе создания версии Java2. Также рассматриваются классы для работы с датой, для генерации случайных чисел, обеспечения поддержки многих национальных языков в приложении и др.
Contents | - |
Тест 1424 minutes | - | |
Lecture 151 hour 53 minutes | Пакет java.io
Эта лекция описывает реализованные в Java возможности передачи информации, что является важной функцией для большинства программных систем. Сюда входит работа с файлами, сетью, долговременное сохранение объектов, обмен данными между потоками исполнения и т.п. Все эти действия базируются на потоках байт (представлены классами InputStream и OutputStream) и потоках символов (Reader и Writer). В библиотеке java.io содержатся все эти классы и их многочисленные наследники, предоставляющие полезные возможности. Отдельно рассматривается механизм сериализации объектов и работа с файлами.
Contents | - |
Тест 1524 minutes | - | |
Lecture 162 hours 17 minutes | Введение в сетевые протоколы
Завершает курс лекция, в которой рассматриваются возможности
построения сетевых приложений. Сначала дается краткое введение в сетевые
протоколы, семиуровневую модель OSI, стек протоколов TCP/IP и описываются
основные утилиты, предоставляемые операционной системой для мониторинга
сети. Эти значения необходимы, поскольку библиотека java.net, по сути, является
интерфейсом для работы с этими протоколами. Рассматриваются классы для
соединений через высокоуровневые протоколы, протоколы TCP и UDP.
Contents | - |
Тест 1624 minutes | - | |
Практикум 1 | Разработка приложений в среде Eclipse
В практикуме рассказывается о работе в среде Eclipse, установке необходимых приложений, дается краткое описание интерфейса и демонстрируется процесс разработки простейшего приложения.
Contents | - |
Практикум 2 | Разработка web-приложений в среде Eclipse
В практикуме рассмотрен пример разработки простейшего web-приложения, включая все тонкости установки и настройки дополнительного программного обеспечения для его работы.
Contents | - |
5 hours | - |