Кен Арнольд Джеймс Гослинг

Вид материалаДокументы

Содержание


Классы и объекты 29
Расширение классов 47
Лексемы, операторы и выражения 78
Порядок выполнения 106
Пакет ввода/вывода 160
Стандартные вспомогательные средства 184
Применение типов в программировании 206
Системное программирование 219
Глава 1ПЕРВОЕ ЗНАКОМСТВО С JAVA
1.1. С самого начала
Hello, world
1.4. Именованные константы
1.4.1. Символы Unicode
1.5. Порядок выполнения
1.6. Классы и объекты
1.6.1. Создание объектов
1.6.2. Статические поля
1.6.3. Сборщик мусора
1.7. Методы и параметры
1.7.1. Вызов метода
...
Полное содержание
Подобный материал:
  1   2   3   4   5   6   7   8   9   ...   81

Кен Арнольд Джеймс Гослинг

Дэвид Холмс

Язык программирования 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