| Введение | 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 |