Введение | 3 |
|
Глава 1. Предыстория и история языка Java | 5 |
|
1.1. История объектно-ориентированного программирования | 5 |
1.2. История языка Java | 8 |
|
Глава 2. Основные понятия Java | 11 |
|
2.1. Основные особенности Java | 11 |
2.2. Обзор основных понятий Java | 13 |
2.3. Java, C++ и «ведомственные» языки | 14 |
2.4. Первая программа на Java | 16 |
2.5. Инструменты программирования на Java | 19 |
2.6. Виды программ на Java | 19 |
|
Глава 3. Объекты и классы | 21 |
|
3.1. Структура класса и простой пример | 21 |
3.2. Наследование классов | 22 |
3.3. Создание объектов и объектные ссылки | 24 |
3.4. Модификаторы доступа. Свойства | 25 |
3.5. Класс Object — общий предок всех классов | 30 |
|
Глава 4. Интерфейсы | 33 |
|
4.1. Определение, пример и назначение интерфейсов | 33 |
4.2. Особенности и примеры использования интерфейсов | 34 |
|
Глава 5. Пакеты | 38 |
|
5.1. Определение, особенности и пример пакета | 38 |
5.2. Единица компиляции | 40 |
5.3. Иерархия пакетов | 41 |
5.4. Соглашение об именовании пакетов | 41 |
5.5. Поиск классов при компиляции и исполнении | 42 |
5.6. Структура пакетов и структура директорий | 43 |
5.7. Организация Java API в виде пакетов | 45 |
|
Глава 6. Классы — дополнительные возможности | 47 |
|
6.1. Статические инициализаторы | 47 |
6.2. Вложенные классы | 48 |
6.3. Класс Class | 52 |
6.4. Интерфейс рефлексии — reflection API | 54 |
|
Глава 7. Простые типы | 57 |
|
7.1. Объектные и простые типы. Тип boolean | 57 |
7.2. Целочисленная арифметика | 58 |
7.3. Вещественная арифметика | 60 |
7.4. Классы-оболочки (wrapper classes) | 62 |
7.5. Инициализация полей и переменных | 63 |
|
Глава 8. Строки и массивы | 65 |
|
8.1. Строки | 65 |
8.2. Массивы | 66 |
|
Глава 9. Операторы | 69 |
|
9.1. Особенности и отличия от Си | 69 |
9.2. Блоки и объявления локальных переменных | 69 |
9.3. Условный оператор и условное выражение | 70 |
9.4. Оператор switch | 71 |
9.5. Операторы while, do-while, break | 72 |
9.6. Операторы for, break, continue | 73 |
|
Глава 10. Исключительные ситуации | 74 |
|
10.1. Общая концепция и исторический обзор | 74 |
10.2. Иерархия исключений в Java | 76 |
10.3. Рекомендации по проектированию исключений | 77 |
10.4. Контролируемые исключения | 78 |
10.5. Неконтролируемые исключения | 80 |
10.6. Общая форма try-блока обработки исключений | 80 |
10.7. Пример использования исключений | 82 |
10.8. Дополнительные возможности класса Exception | 83 |
|
Глава 11. Многопоточное программирование | 84 |
|
11.1. История | 84 |
11.2. Виды синхронизации процессов | 85 |
11.3. Потоки и облегчённые процессы | 86 |
11.4. Обзор средств много поточно го программирования в Java | 87 |
11.5. Основные свойства класса Thread | 88 |
11.6. Создание и запуск потока | 88 |
11.7. Синхронизация потоков по ресурсам | 90 |
11.8. Синхронизация потоков по событиям | 91 |
11.9. Завершение, приостановка и возобновление потоков | 92 |
11.10. Перевод потока в «спящее» состояние и «побудка» | 93 |
11.11. Дополнительные возможности управления потоками | 94 |
11.12. Структуризация потоков в группы | 95 |
|
Глава 12. Апплеты | 98 |
|
12.1. Основные понятия | 98 |
12.2. Пример простейшего апплета | 99 |
12.3. Архитектура апплета | 100 |
12.4. Взаимодействие апплета с внешней средой. Безопасность | 101 |
12.5. Структура тега applet и параметры апплета | 103 |
12.6. Вывод информации апплетом | 103 |
12.7. Проигрывание аудиоклипов из апплета | 106 |
12.8. Обработка событий в апплете | 107 |
|
Глава 13. Сериализация | 110 |
|
13.1. Полнота реализации объектно-ориентированной модели |
в Java | 110 |
13.2. Основные понятия и принципы сериализации | 111 |
13.3. Базовый API для сериализации в Java | 111 |
13.4. Десериализация | 113 |
13.5. Пример сериализации и десериализации | 114 |
13.6. Дополнительные возможности | 115 |
|
Глава 14. Технология Java Beans | 117 |
|
14.1. Основные понятия | 117 |
14.2. Базовый инструментарий разработки Java Beans | 118 |
14.3. Основные принципы разработки Java Beans | 119 |
14.4. Архивация Java Beans. Утилита jar | 120 |
14.5. Пример Java Bean | 121 |
14.6. Шаблоны проектирования свойств | 124 |
14.7. Шаблоны проектирования событий | 126 |
14.8. Связываемые свойства (bound properties) | 127 |
14.9. Свойства с ограничениями (constrained properties) | 129 |
14.10. Пример: связываемые свойства с ограничениями | 131 |
14.11. Дополнительные возможности | 133 |
|
Глава 15. AWT — инструментарий для создания GUI | 135 |
|
15.1. История и проблемы развития GUI | 135 |
15.2. Основные возможности и функции AWT | 136 |
15.3. Иерархия классов AWT | 137 |
15.4. Класс Component | 137 |
15.5. Класс Container. Менеджеры размещения | 139 |
15.6. Пример использования AWT: фрейм и кнопки | 141 |
15.7. Некоторые другие элементы управления AWT | 144 |
15.8. Краткий обзор подпакетов AWT | 145 |
|
Глава 16. Система Swing — новый GUI-инструментарий Java-технологии | 146 |
|
16.1. Обзор возможностей Swing | 146 |
16.2. Связь и различия Swing и AWT | 147 |
16.3. Пример компоненты Swing: панель с вкладками | 148 |
16.4. Динамическое изменение стиля визуализации (Pluggable |
Look and Feel — PLAF) | 150 |
16.5. Обзор компонент Swing | 151 |
16.6. Swing и парадигма проектирования MVC | 152 |
16.7. Принципы проектирования Java Look-and-Feel | 153 |
|
Глава 17. Сетевое программирование на Java | 155 |
|
17.1. Java-универсальный язык сетевого программирования | 155 |
17.2. IP-адресация (InetAddress) | 156 |
17.3. Web-адресация (URL), Соединения с URL | 157 |
17.4. Сокетные соединения (sockets) | 159 |
17.5. Серверные сокеты (ServerSocket) | 162 |
17.6. Обзор других возможностей пакета java.net | 163 |
|
Глава 18. Стиль программирования и документирование программ на Java | 164 |
|
18.1. Рекомендации по стилю программирования на Java | 164 |
18.2. Документирование программ. Утилита javadoc | 168 |
|
Глава 19. Перспективы Java-технологии | 172 |
|
19.1. Ссылки и дальнейшие планы | 172 |
19.2. Краткий обзор перспектив Java-технологии | 173 |
|
Литература | 176 |
|
Словарь | 178 |