- •Аннотация
- •Лекция 1. Что такое Java? История создания.
- •1. Что такое Java?
- •2. История создания Java
- •2.1. Сложности внутри Sun Microsystems
- •2.2. Проект Green
- •2.3. Компания FirstPerson
- •2.4. World Wide Web
- •2.5. Возрождение Oak
- •2.6. Java выходит в свет
- •3. История развития Java
- •3.1. Браузеры
- •3.2. Сетевые компьютеры
- •3.3. Платформа Java
- •4. Заключение
- •5. Контрольные вопросы
- •Аннотация
- •1. Основы объектно-ориентированного программирования
- •1.1. Методология процедурно-ориентированного программирования
- •1.2. Методология объектно-ориентированного программирования
- •1.3. Объекты
- •1.3.1. Состояние.
- •1.3.2. Поведение
- •1.3.3. Уникальность
- •1.4. Классы
- •1.4.1. Инкапсуляция
- •1.4.2. Полиморфизм
- •1.5. Типы отношений между классами
- •1.5.1. Агрегация
- •1.5.2. Ассоциация
- •1.5.3. Наследование
- •1.5.4. Метаклассы
- •1.6. Достоинства ООП
- •1.7. Недостатки ООП
- •1.8. Заключение
- •1.9. Контрольные вопросы
- •Аннотация
- •Лекция 3. Лексика языка
- •1. Лексика языка
- •1.1. Кодировка
- •1.2. Анализ программы
- •1.2.1. Пробелы
- •1.2.2. Комментарии
- •1.2.3. Лексемы
- •1.3. Виды лексем
- •1.3.1. Идентификаторы
- •1.3.2. Ключевые слова
- •1.3.3. Литералы
- •1.3.3.1. Целочисленные литералы
- •1.3.3.2. Дробные литералы
- •1.3.3.3. Логические литералы
- •1.3.3.4. Символьные литералы
- •1.3.3.5. Строковые литералы
- •1.3.3.6. Null литерал
- •1.3.3.7. Разделители
- •1.3.3.8. Операторы
- •1.3.3.9. Заключение
- •1.4. Дополнение: Работа с операторами
- •1.4.1. Операторы присваивания и сравнения
- •1.4.2. Арифметические операции
- •1.4.3. Логические операторы
- •1.4.4. Битовые операции
- •1.5. Заключение
- •1.6. Контрольные вопросы
- •Аннотация
- •Лекция 4. Типы данных
- •1. Введение
- •2. Переменные
- •3. Примитивные и ссылочные типы данных
- •3.1. Примитивные типы
- •3.2. Целочисленные типы
- •4. Дробные типы
- •5. Булевский тип
- •6. Ссылочные типы
- •6.1. Объекты и правила работы с ними
- •6.2. Класс Object
- •6.3. Класс String
- •6.4. Класс Class
- •7. Заключение
- •8. Заключение
- •9. Контрольные вопросы
- •Аннотация
- •Лекция 5. Имена. Пакеты
- •1. Введение
- •2. Имена
- •2.1. Простые и составные имена. Элементы.
- •2.2. Имена и идентификаторы
- •2.3. Область видимости (введение)
- •3. Пакеты
- •3.1. Элементы пакета
- •3.2. Платформенная поддержка пакетов
- •3.3. Модуль компиляции
- •3.3.1. Объявление пакета
- •3.3.2. Импорт-выражения
- •3.3.3. Объявление верхнего уровня
- •3.4. Уникальность имен пакетов
- •4. Область видимости имен
- •4.1. "Затеняющее" объявление (Shadowing)
- •4.2. "Заслоняющее" объявление (Obscuring)
- •5. Соглашения по именованию
- •6. Заключение
- •7. Контрольные вопросы
- •Аннотация
- •Лекция 6. Объявление классов
- •1. Введение
- •2. Модификаторы доступа
- •2.1. Предназначение модификаторов доступа
- •2.2. Разграничение доступа в Java
- •3. Объявление классов
- •3.1. Заголовок класса
- •3.2. Тело класса
- •3.3. Объявление полей
- •3.4. Объявление методов
- •3.5. Объявление конструкторов
- •3.6. Инициализаторы
- •4. Дополнительные свойства классов
- •4.1. Метод main
- •4.2. Параметры методов
- •4.3. Перегруженные методы
- •5. Заключение
- •6. Контрольные вопросы
- •Аннотация
- •Лекция 7. Преобразование типов
- •1. Введение
- •2. Виды приведений
- •2.1. Тождественное преобразование
- •2.2. Преобразование примитивных типов (расширение и сужение)
- •2.3. Преобразование ссылочных типов (расширение и сужение)
- •2.4. Преобразование к строке
- •2.5. Запрещенные преобразования
- •3. Применение приведений
- •3.1. Присвоение значений
- •3.2. Вызов метода
- •3.3. Явное приведение
- •3.4. Оператор конкатенации строк
- •3.5. Числовое расширение
- •3.5.1. Унарное числовое расширение
- •3.5.2. Бинарное числовое расширение
- •4. Тип переменной и тип ее значения
- •5. Заключение
- •6. Контрольные вопросы
- •Аннотация
- •1. Введение
- •2. Статические элементы
- •3. Ключевые слова this и super
- •4. Ключевое слово abstract
- •5. Интерфейсы
- •5.1. Объявление интерфейсов
- •5.2. Реализация интерфейса
- •5.3. Применение интерфейсов
- •6. Полиморфизм
- •6.1. Поля
- •6.2. Методы
- •6.3. Полиморфизм и объекты
- •7. Заключение
- •8. Контрольные вопросы
- •Аннотация
- •Лекция 9. Массивы
- •1. Введение
- •2. Массивы, как тип данных в Java
- •2.1. Объявление массивов
- •2.2. Инициализация массивов
- •2.3. Многомерные массивы
- •2.4. Класс массива
- •3. Преобразование типов для массивов
- •3.1. Ошибка ArrayStoreException
- •3.2. Переменные типа массив, и их значения
- •4. Клонирование
- •4.1. Клонирование массивов
- •5. Заключение
- •6. Контрольные вопросы
- •Аннотация
- •Лекция 10. Операторы и структура кода
- •1. Управление ходом программы
- •2. Нормальное и прерванное выполнение операторов
- •3. Блоки и локальные переменные
- •4. Пустой оператор
- •5. Метки
- •6. Оператор if
- •7. Оператор switch
- •8. Управление циклами
- •8.1. Цикл while
- •8.2. Цикл do
- •8.3. Цикл for
- •9. Операторы break и continue
- •9.1. Оператор continue
- •9.2. Оператор break
- •10. Именованные блоки
- •11. Оператор return
- •12. Оператор synchronized
- •13.1. Причины возникновения ошибок
- •13.2. Обработка исключительных ситуаций
- •13.2.1. Конструкция try-catch
- •13.2.2. Конструкция try-catch-finally
- •13.3. Использование оператора throw
- •13.4. Обрабатываемые и необрабатываемые исключения
- •13.5. Создание пользовательских классов исключений
- •13.6. Переопределение методов и исключения
- •13.7. Особые случаи
- •14. Заключение
- •15. Контрольные вопросы
- •Аннотация
- •Лекция 11. Пакет java.awt
- •1. Введение
- •2. Апплеты
- •2.1. Тег HTML <Applet>
- •2.2. Передача параметров
- •2.3. Контекст апплета
- •2.4. Отладочная печать
- •2.5. Порядок инициализации апплета
- •2.6. Перерисовка
- •2.7. Задание размеров графических изображений
- •2.8. Простые методы класса Graphics
- •2.9. Цвет
- •2.9.1. Методы класса Color
- •2.10. Шрифты
- •2.10.1. Использование шрифтов
- •2.10.2. Позиционирование и шрифты: FontMetrics
- •2.10.3. Использование FontMetrics
- •2.10.4. Центрирование текста
- •3. Базовые классы
- •4. Основные компоненты
- •5. Менеджеры компоновки
- •6. Окна
- •7. Меню
- •8. Обработка событий
- •8.1. Рисование "каракулей" в Java
- •8.2. Рисование "каракулей" с использованием встроенных классов
- •9. Заключение
- •10. Контрольные вопросы
- •Аннотация
- •Лекция 12. Потоки выполнения. Синхронизация
- •1. Введение
- •2. Многопоточная архитектура
- •3. Базовые классы для работы с потоками
- •3.1. Класс Thread
- •3.2. Интерфейс Runnable
- •3.3. Работа с приоритетами
- •3.4. Демон-потоки
- •4. Синхронизация
- •4.1. Хранение переменных в памяти
- •4.2. Модификатор volatile
- •4.3. Блокировки
- •5. Методы wait(), notify(), notifyAll() класса Object
- •6. Контрольные вопросы
- •Аннотация
- •Лекция 13. Пакет java.lang.
- •1. Введение
- •2. Object
- •3. Class
- •4. Wrapper Classes
- •4.1. Integer
- •4.2. Character
- •4.3. Boolean
- •4.4. Void
- •5. Math
- •6. Строки
- •6.1. String
- •6.2. StringBuffer
- •7. Системные классы
- •7.1. ClassLoader
- •7.2. SecurityManager - менеджер безопасности
- •7.3. System
- •7.4. Runtime
- •7.5. Process
- •8. Потоки исполнения
- •8.1. Runnable
- •8.2. Thread
- •8.3. ThreadGroup
- •9. Исключения
- •10. Заключение
- •11. Контрольные вопросы
- •Аннотация
- •Лекция 14. Пакет java.util
- •1. Введение
- •2. Работа с датами и временем
- •2.1. Класс Date
- •2.2. Классы Calendar и GregorianCalendar
- •2.3. Класс TimeZone
- •2.4. Класс SimpleTimeZone
- •3. Интерфейс Observer и класс Observable
- •4. Коллекции
- •4.1. Интерфейсы
- •4.1.1. Интерфейс Collection
- •4.1.2. Интерфейс Set
- •4.1.3. Интерфейс List
- •4.1.4. Интерфейс Map
- •4.1.5. Интерфейс SortedSet
- •4.1.6. Интерфейс SortedMap
- •4.1.7. Интерфейс Iterator
- •4.2. Aбстрактные классы используемые при работе с коллекциями.
- •4.3. Конкретные классы коллекций
- •4.4. Класс Collections
- •5. Класс Properties
- •6. Интерфейс Comparator
- •7. Класс Arrays
- •8. Класс StringTokenizer
- •9. Класс BitSet
- •10. Класс Random
- •11. Локализация
- •11.1. Класс Locale
- •11.2. Класс ResourceBundle
- •12. Заключение
- •13. Контрольные вопросы
- •Аннотация
- •Лекция 15. Пакет java.io
- •1. Система ввода/вывода. Потоки данных (stream)
- •1.1. Классы InputStream и OutputStream
- •1.2. Классы-реализации потоков данных
- •1.2.1. Классы ByteArrayInputStream и ByteArrayOutputStream
- •1.2.2. Классы FileInputStream и FileOutputStream
- •1.2.3. PipedInputStream и PipedOutputStream
- •1.2.4. StringBufferInputStream
- •1.2.5. SequenceInputStream
- •1.3. Классы FilterInputStreeam и FilterOutputStream. Их наследники.
- •1.3.1. BufferedInputStream и BufferedOutputStream
- •1.3.2. LineNumberInputStream
- •1.3.3. PushBackInputStream
- •1.3.4. PrintStream
- •1.3.5. DataInputStream и DataOutputStream
- •2. Serialization
- •2.1. Версии классов
- •3. Классы Reader и Writer. Их наследники.
- •4. Класс StreamTokenizer
- •5. Работа с файловой системой.
- •5.1. Класс File
- •5.2. Класс RandomAccessFile
- •6. Заключение
- •7. Контрольные вопросы
- •Аннотация
- •Лекция 16. Введение в сетевые протоколы
- •1. Основы модели OSI
- •2. Physical layer (layer 1)
- •3. Data layer (layer 2)
- •3.1. LLC sublayer.
- •3.2. MAC sublayer.
- •4. Network layer (layer 3)
- •4.1. Class A
- •4.2. Class B
- •4.3. Class CClass DClass E
- •5. Transport layer (layer 4)
- •6. Session layer (layer 5)
- •7. Presentation layer (layer 6)
- •8. Application layer (layer 7)
- •9. Утилиты для работы с сетью
- •9.1. IPCONFIG (IFCONFIG)
- •9.3. Ping
- •9.4. Traceroute
- •9.5. Route
- •9.6. Netstat
- •9.7. Задания для практического занятия
- •10. Пакет java.net
- •11. Заключение
- •12. Контрольные вопросы
Стр. 26 из 30 |
Заключение |
4. Заключение
В этой лекции Вы узнали, какая сложная ситуация сложилась в корпорации Sun в эпоху развития персональных компьютеров в конце 1990 года. Патрик Нотон в своем письме сумел выявить истинные причины такого положения и обозначить истинные цели для создания успешного продукта. Благодаря этому при поддержке Джеймса Гослинга начался проект Green. Одним из продуктов, созданных в рамках этого проекта, стала совершенно новая платформа Oak. Для ее продвижения Sun учредила дочернюю компанию FirstPerson, но настоящий успех пришел, когда платформу, переименовав в Java, сориентировали на применение в Интернете. Глобальная сеть появилась в апреле 1993 года с выходом первого браузера Mosaic 1.0 и завоевывала пользовательскую аудиторию с поразительной скоростью. Первым примером Java-приложений стали апплеты, запускаемые при помощи специально созданного браузера HotJava. Наконец, после почти 4-х летней истории создания и развития, Java была официально объявлена миру. Благодаря подписанию лицензионного соглашения с Netscape, это событие стало поистине триумфальным.
Были рассмотрены различные варианты применения Java и насколько удачно удалось их развить и воплотить в жизнь. Отдельно был описан язык Java Script, который, несмотря на сходство в названии, имеет не так много общих черт с Java. Подробно рассмотрены отличительные особенности Java. Описаны базовые продукты от Sun: JDK и JRE. Кратко освещена история развития версий платформы Java, включая добавляемые технологии и продукты.
5. Контрольные вопросы
1-1. Перечислите основные свойства и преимущества платформы Java. Что такое JVM? a.) Основные свойства языка:
•Кросс-платформенный
•Объектно-ориентированный
•- Строгая типизация
-Наличие 8 примитивных типов
-Вместо множественного наследования введены интерфейсы
•Легкий в освоении и разработке
•- Привычный синтаксис Java, являющийся развитием синтаксиса С/С++
-Автоматическая сборка мусора (garbage collection)
-Повышенная надежность Java-программ
-Изначальная поддержка многопоточной архитектуры
•Высоко защищенный
•- Отсутствие указателей
Программирование на Java
Rendered by www.RenderX.com
Стр. 27 из 30
-Обязательная проверка виртуальной машиной кода загружаемых классов и действий, выполняемых программой
-Встроенные возможности (работа с SSL и др.)
-Подпись апплетов
•Приспособленный к разработке интернет-приложений
•Динамичный и активно развивающийся
JVM – это Java Virtual Machine, виртуальная машина Java,
интерпретирующая байт-код, описываемый в class-файлах. Ее применение необходимо для обеспечения кросс-платформенности, а также для безопасности, однако создает определенные проблемы в вопросе производительности.
1-2. Является ли язык Java компилируемым или интерпретируемым?
a.) Используются оба подхода. Исходный код сначала компилируется в байткод, который затем интерпретируется виртуальной машиной.
1-3. Что такое механизм автоматической сборки мусора (garbage collector)?
a.) Этот механизм автоматически подсчитывает количество ссылок на каждый объект Java. Когда на объект больше не указывает ни одна ссылка, он удаляется из памяти, освобождая ресурсы для программы.
1-4. В чем сходства и различия Java и C/C++?
a.) Основным сходством является во многом похожий синтаксис. Различий гораздо больше – Java обладает свойством кросс-платформенности, применяет интерпретатор, использует отличную объектную модель и др.
1-5. Почему Java является платформой, а не языком программирования?
a.) Применяя язык программирования, всегда необходимо учитывать используемую платформу при обращении к аппаратным ресурсам, таким как файловая система, работа с сетью, потоки исполнения и другие.Java сама является полноценной платформой, предоставляя приложениям единый интерфейс и скрывая различия используемой операционной системы и аппаратной платформы.
1-6. Из-за каких опасений корпорация Sun вела многолетнюю судебную тяжбу с Microsoft
после выхода MS Internet Explorer 4.0?
a.) Одним из важнейших свойств Java является кросс-платформенность, для чего необходимо абсолютное соблюдение спецификации языка. Если разные реализации платформы будут иметь различные свойства, то совместимость будет утеряна.
Фирма Microsoft в своем продукте Internet Explorer 4.0 реализовала виртуальную машину с нарушениями лицензионного соглашения, а именно как раз внесла не стандартизованные возможности, что ставило под угрозу ключевое преимущество Java.
1-7. Из чего состоит и в каком виде записывается программа, написанная на Java?
Программирование на Java
Rendered by www.RenderX.com
Стр. 28 из 30 |
Контрольные вопросы |
a.) Программа на языке Java состоит из объявления классов, записанных в текстовых файлах с расширением java. Затем с помощью компилятора генерируются бинарные .class-файлы, содержащие байт-код, который затем интерпретируется виртуальной машиной.Часто класс-файлы упаковываются в архивы (.jar или .zip).
1-8. Что можно сказать относительно скорости выполнения Java-программ, и какие шаги предпринимала компания Sun в этой направлении?
a.) Быстродействие программ первых версий Java оставляло желать много лучшего. Виртуальная машина является интерпретатором, и ее первые реализации страдали от отсутствия должной оптимизации. Однако даже в то время для Java это не было принципиальным недостатком, поскольку основные конкурентные преимущества заключались в другом.
Компания Sun, непрерывно оптимизируя JVM, предложила продукт JIT (Just-in-time), который перед исполнением программы транслировал ее в «родной» код применяемой платформы, что существенно ускоряло работу приложений. С версии 1.3 применяется виртуальная машина HotSpot, применяющая улучшенные алгоритмы сборки мусора и существенно улучшающая быстродействие.
1-9. Что такое апплет?
a.) Апплет – это приложение, написанное на Java, распространяемое, как правило, через сеть Интернет и выполняемое виртуальной машиной браузера. Являются частью HTML-страницы.
Обычно имеет небольшой размер и существенно ограничивается в правах доступа к системе клиента, чтобы обеспечить безопасность выполнения кода, полученного из открытых источников.
1-10. Когда было официально объявлено о Java?
a.) 23 мая 1995 года на конференции SunWorld.
1-11. Где в Интернете можно найти самую полную и актуальную информацию о Javaплатформе?
a.) Официальный сайт Java – http://java.sun.com
1-12. Какова система версий в Java? Что означает название Java2? Какая последняя выпущенная версия Java?
a.) Номер версии состоит их трех чисел.
Первое число всех существующих на данный момент версий – единица. Такие версии всегда совместимы между собой, то есть, программы, написанные на основе более старых версий, всегда будут корректно исполняться более новыми версиями. По возможности сохраняется и обратная совместимость – программы, созданные на основе более новых версий, будут работать и для более старых версий, если они обладают всеми используемыми свойствами.
Второе число изменилось от 0 до 4 (версии 1.0 по 1.4). Каждая новая версия обладает новыми возможностями по сравнению с предыдущей. Java версии 1.2 настолько превосходила платформу 1.1, что, начиная с
Программирование на Java
Rendered by www.RenderX.com
Стр. 29 из 30
нее, все последующие версии называли платформой Java2 (при этом сама система номеров версий не изменилась).
Третья цифра означает номер версии поддержки платформы. Не добавляются никакие новые возможности, но исправляются ошибки, возможна дополнительная оптимизация. Последняя версия на данный момент Java 1.4.0.
1-13. Что означает сообщение deprecated?
a.) На данный момент новые версии Java продолжают поддерживать все возможности старых, однако некоторые классы и методы становятся не рекомендованными к использованию и, возможно, будут удалены их последующих версий. В этом случае они называются deprecated, и в процессе компиляции будут выданы предупреждения о том, что таких конструкций необходимо по возможности избегать.
1-14. На какие три направления было поделено развитие Java вскоре после выхода Java2?
a.) В середине 1999 года было объявлено о разделении Java на три направления:
•J2SE – Java2 Standard Edition, основа технологии Java, прямое развитие JDK
•J2EE – Java2 Enterprise Edition, платформа для создания сложных,
распределенных, высоконадежных серверных приложений
•J2ME – Java2 Micro Edition, упрощенная J2SE для применения в небольших устройствах с ограниченными аппаратными ресурсами
1-15. Какая версия Java поддерживается в большинстве браузеров? Что такое Java Plugin?
a.) Большинство браузеров поддерживает уже устаревшую версию Java 1.1, хотя практически каждый имеет некоторые отличительные особенности, отклонения от спецификации и т.п. Это делает довольно трудоемким создание универсальных апплетов, предназначенных для всех пользователей Интернет.
Поэтому компания Sun с конца 1997 года предлагает специальный продукт Java Plug-in, который можно установить на любой браузер и который позволяет запускать апплеты в точном соответствии со спецификацией Java. Plug-in доступен для любой версии платформы.
1-16. Что такое JDK и JRE? В чем сходство и разница между ними? Какие основные утилиты входят в их состав?
a.) JDK – это Java Development Kit, средство разработчика Java, включающее в себя набор утилит, стандартные библиотеки с их сходным кодом и набор демонстрационных примеров. Утилиты включают в себя:
•java – реализация JVM
•javac – компилятор Java
•appletviewer – средство для запуска апплетов
Программирование на Java
Rendered by www.RenderX.com
Стр. 30 из 30 |
Контрольные вопросы |
•jar – архиватор формата JAR
•javadoc – утилита для автоматической генерации документации
JRE – это Java Runtime Environment, среда выполнения Java,
предназначена только для запуска готовых Java-приложений, а потому содержит лишь реализацию виртуальной машины и набор стандартных библиотек.
Программирование на Java
Rendered by www.RenderX.com