Кен Арнольд Джеймс Гослинг
Вид материала | Документы |
- Джеймс трефил, 41001.36kb.
- Джеймс А. Дискретная математика и комбинаторика [Текст] / Джеймс А. Андерсон, 42.79kb.
- Человеческая способность эти ценности производить и использовать; является важнейшей, 110.76kb.
- Джеймс блиш города в полете 1-4 триумф времени вернись домой, землянин жизнь ради звезд, 10495.38kb.
- Джеймс Н. Фрей. Как написать гениальный роман, 2872.12kb.
- Дп «авто интернешнл» Київ, вул. Урицького, 1а Тел. (044) 20-60-333 Факс. (044) 20-60-343, 82.44kb.
- Тема Кол-во страниц, 26.85kb.
- Тема Кол-во страниц, 56.3kb.
- Тема Кол-во страниц, 20.7kb.
- Арнольд И. В. Стилистика современного английского языка, 20.42kb.
Кен Арнольд Джеймс Гослинг
Дэвид Холмс
Язык программирования Java
1-е издание
Кен Арнольд Джеймс Гослинг 1
Дэвид Холмс 1
Язык программирования Java 1
1
1-е издание 1
Глава 1
ПЕРВОЕ ЗНАКОМСТВО С JAVA 7
1.1. С самого начала 7
1.2. Переменные 8
1.3. Комментарии 10
1.4. Именованные константы 10
1.4.1. Символы Unicode 11
1.5. Порядок выполнения 11
1.6. Классы и объекты 13
1.6.1. Создание объектов 14
1.6.2. Статические поля 15
1.6.3. Сборщик мусора 15
1.7. Методы и параметры 16
1.7.1. Вызов метода 16
1.7.2. Ссылка this 17
1.7.3. Статические методы 17
1.8. Массивы 18
1.9. Строковые объекты 19
1.10. Расширение класса 21
1.10.1. Класс Object 23
1.10.2. Вызов методов суперкласса 23
1.11. Интерфейсы 24
1.12. Исключения 25
1.13. Пакеты 27
1.14. Инфраструктура Java 28
1.15. Прочее 29
Глава 2
КЛАССЫ И ОБЪЕКТЫ 29
2.1. Простой класс 30
2.2. Поля 30
2.3. Управление доступом и наследование 31
2.4. Создание объектов 31
2.5. Конструкторы 32
2.6. Методы 35
2.6.1. Значения параметров 37
2.6.2. Применение методов для ограничения доступа 38
2.7. Ссылка this 40
2.8. Перегрузка методов 41
2.9. Статические члены 41
2.9.1. Блоки статической инициализации 42
2.9.2. Статические методы 42
2.10. Сборка мусора и метод finalize 43
2.10.1. Метод finalize 44
2.10.2. Восстановление объектов в методе 45
2.11. Метод main 46
2.12. Метод toString 47
2.13. Родные методы 47
Глава 3
РАСШИРЕНИЕ КЛАССОВ 47
3.1. Расширенный класс 48
3.2. Истинное значение protected 50
3.3. Конструкторы в расширенных классах 51
3.3.1. Порядок вызова конструкторов 52
3.4. Переопределение методов и скрытие полей 54
3.4.1. Ключевое слово super 56
3.5. Объявление методов и классов с ключевым словом final 57
3.6. Класс Object 58
3.7. Абстрактные классы и методы 60
3.8. Дублирование объектов 61
3.9. Расширение классов: когда и как 65
3.10. Проектирование расширяемого класса 66
Глава 4
ИНТЕРФЕЙСЫ 70
4.1. Пример интерфейса 71
4.2. Одиночное и множественное наследование 72
4.3. Расширение интерфейсов 73
4.3.1. Конфликты имен 74
4.4. Реализация интерфейсов 75
4.5. Использование реализации интерфейса 76
Глава 5
ЛЕКСЕМЫ, ОПЕРАТОРЫ И ВЫРАЖЕНИЯ 78
5.1. Набор символов 79
5.2. Комментарии 79
5.3. Лексемы 80
5.4. Идентификаторы 81
5.4.1. Зарезервированные слова Java 81
5.5. Примитивные типы 82
5.6. Литералы 82
5.6.1. Ссылки на объекты 82
5.6.2. Логические значения 83
5.6.3. Целые значения 83
5.6.4. Значения с плавающей точкой 83
5.6.5. Символы 83
5.6.6. Строки 84
5.7. Объявления переменных 84
5.7.1. Значение имени 85
5.8. Массивы 86
5.8.1. Многомерные массивы 87
5.9. Инициализация 88
5.9.1. Инициализация массивов 89
5.10. Приоритет и ассоциативность операторов 89
5.11. Порядок вычислений 91
5.12. Тип выражения 91
5.13. Приведение типов 92
5.13.1. Неявное приведение типов 92
5.13.2. Явное приведение и instanceof 93
5.13.3. Строковое приведение 95
5.14. Доступ к членам 95
5.15. Арифметические операторы 97
5.15.1. Целочисленная арифметика 98
5.15.2. Арифметика с плавающей точкой 98
5.15.3. Арифметика с плавающей точкой и стандарт IEEE-754 99
5.15.4. Конкатенация строк 100
5.16. Операторы приращения и уменьшения 100
5.17. Операторы отношения и условный оператор 101
5.18. Поразрядные операции 103
5.19. Условный оператор 104
5.20. Операторы присваивания 104
5.21. Имена пакетов 105
Глава 6
ПОРЯДОК ВЫПОЛНЕНИЯ 106
6.1. Операторы и блоки 106
6.2. Оператор if-else 107
6.3. Оператор switch 108
6.4. Цикл while и do-while 110
6.5. Оператор for 110
6.6. Метки 112
6.7. Оператор break 112
6.8. Оператор continue 113
6.9. Оператор return 113
6.10. Где же goto? 114
Глава 7
ИСКЛЮЧЕНИЯ 114
7.1. Создание новых типов исключений 115
7.2. Оператор throw 116
7.3. Условие throws 116
7.4. Операторы try, catch и finally 118
7.4.1. Условие finally 119
7.5. Когда применяются исключения 121
Глава 8
СТРОКИ 122
8.1. Основные операции со строками 122
8.2. Сравнение строк 123
8.3. Вспомогательные методы 126
8.4. Создание производных строк 127
8.5. Преобразование строк 128
8.6. Строки и символьные массивы 129
8.7. Строки и массивы byte 130
8.8. Класс StringBuffer 131
8.8.1. Модификация буфера 132
8.8.2. Извлечение данных 133
8.8.3. Работа с емкостью буфера 134
Глава 9
ПОТОКИ 135
9.1. Создание потоков 137
9.2. Синхронизация 138
9.2.1. Методы synchronized 138
9.2.2. Операторы synchronized 140
9.3. Методы wait и notify 141
9.4. Подробности, касающиеся wait и notify 143
9.5. Планирование потоков 144
9.6. Взаимная блокировка 146
9.7. Приостановка потоков 147
9.8. Прерывание потока 147
9.9. Завершение работы потока 148
9.10. Завершение приложения 150
9.11. Использование Runnable 150
9.12. Ключевое слово volatile 152
9.13. Безопасность потоков и ThreadGroup 152
9.14. Отладка потоков 156
Глава 10
ПАКЕТЫ 157
10.1. Имена пакетов 158
10.2. Пакетный доступ 158
10.3. Содержимое пакета 159
Глава 11
ПАКЕТ ВВОДА/ВЫВОДА 160
11.1. Потоки 160
11.2. Класс InputStream 161
11.3. Класс OutputStream 162
11.4. Стандартные типы потоков 164
11.5. Фильтрующие потоки 165
11.6. Класс PrintStream 166
11.7. Буферизованные потоки 167
11.8. Байтовые потоки 168
11.9. Класс StringBufferInputStream 169
11.10. Файловые потоки и FileDescriptor 169
11.11. Конвейерные потоки 170
11.12. Класс Seq uenceInputStream 170
11.13. Класс LineNumberInputStream 172
11.14. Класс PushbackInputStream 172
11.15. Класс StreamTokenizer 173
11.16. Потоки данных 177
11.16.1. Классы потоков данных 178
11.17. Класс RandomAccessFile 179
11.18. Класс File 180
11.19. Интерфейс FilenameFilter 182
11.20. Классы IOException 183
Глава 12
СТАНДАРТНЫЕ ВСПОМОГАТЕЛЬНЫЕ СРЕДСТВА 184
12.1. Класс BitSet 185
12.2. Интерфейс Enumeration 186
12.3. Реализация интерфейса Enumeration 187
12.4. Класс Vector 188
12.5. Класс Stack 192
12.6. Класс Dictionary 193
12.7. Класс Hashtable 194
12.8. Класс Properties 196
12.9. Классы Observer/Observable 197
12.10. Класс Date 200
12.11. Класс Random 203
12.12. Класс String Tokenizer 204
Глава 13
ПРИМЕНЕНИЕ ТИПОВ В ПРОГРАММИРОВАНИИ 206
13.1. Класс Class 207
13.2. Загрузка классов 209
13.3. Классы-оболочки: общий обзор 213
13.4. Класс Boolean 214
13.5. Класс Character 214
13.6. Класс Number 216
13.7. Класс Integer 216
13.8. Класс Long 217
13.9. Классы Float и Double 218
Глава 14
СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ 219
14.1. Стандартный поток ввода/вывода 219
14.2. Управление памятью 220
14.3. Системные свойства 221
14.4. Создание процессов 222
14.5. Класс Runtime 225
14.6. Разное 226
14.7. Безопасность 227
14.8. Класс Math 227
Приложение А
Родные методы 229
А.1 Обзор 230
А.2 Согласование с C и C++ 230
А.2.1 Имена 232
А.2.2 Методы 232
А.2.3 Типы 233
А.2.5 Средства безопасности 234
А.2.6 Работа с памятью 234
А.3 Пример 234
А.3.1 Внутреннее строение LockableFile 236
А.4 Строки 237
А.5 Массивы 240
А.6 Создание объектов 243
А.7 Вызов методов Java 244
А.8 Последнее предупреждение 246
Приложение Б
Runtime-исключения в Java 246
Б.1 Классы RuntimeException 247
Б.2 Классы Error 248
Приложение В
Полезные таблицы 250