Page
- 8. СОДЕРЖАНИЕ
- 18. ОБ АВТОРЕ
- 19. ПРЕДИСЛОВИЕ
- 21. БЛАГОДАРНОСТИ
- 23. 1 ОСНОВОПОЛАГАЮЩИЕ СТРУКТУРЫ ПРОГРАММИРОВАНИЯ
- 26. 1.1.2. Компилирование и выполнение первой программы на Java
- 28. 1.1.3. Вызовы методов
- 29. 1.2. Примитивные типы
- 31. 1.2.2. Числовые типы с плавающей точкой
-
32.
1.2.3. Тип char
1.2.4. Логический тип
1.3. Переменные -
33.
1.3.2. Именование переменных
1.3.3. Инициализация переменных - 34. 1.3.4. Константы
- 35. 1.4. Арифметические операции
- 36. 1.4.2. Основные арифметические операции
- 37. 1.4.3. Математические методы
- 38. 1.4.4. Преобразования числовых типов
- 40. 1.4.5. Операции отношения и логические операции
- 41. 1.4.6. Большие числа
- 42. 1.5. Символьные строки
-
43.
1.5.2. Подстроки
1.5.3. Сравнение символьных строк - 45. 1.5.4. Взаимное преобразование чисел и символьных строк
- 46. 1.5.5. Прикладной программный интерфейс API для обработки символьных строк
- 47. 1.5.6. Кодовые точки и кодовые единицы
- 49. 1.6. Ввод-вывод
- 50. 1.6.2. Форматированный вывод данных
- 52. 1.7. Управляющая логика
- 54. 1.7.2. Циклы
- 56. 1.7.3. Прерывание и продолжение цикла
- 58. 1.7.4. Область действия локальных переменных
- 59. 1.8. Обычные и списочные массивы
- 60. 1.8.2. Построение массива
- 61. 1.8.3. Списочные массивы
- 62. 1.8.4. Классы-оболочки для примитивных типов данных
-
63.
1.8.5. Расширенный цикл for
1.8.6. Копирование обычных и списочных массивов - 64. 1.8.7. Алгоритмы обработки массивов
- 65. 1.8.8. Аргументы командной строки
- 66. 1.8.9. Многомерные массивы
- 68. 1.9. Функциональное разложение
-
69.
1.9.2. Массивы параметров и возвращаемые значения
1.9.3. Переменное число аргументов - 70. Упражнения
- 73. 2 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
- 77. 2.1.2. Ссылки на объекты
- 79. 2.2. Реализация классов
-
80.
2.2.2. Заголовки методов
2.2.3. Тела методов -
81.
2.2.4. Вызов методов экземпляра
2.2.5. Ссылка this - 82. 2.2.6. Вызов по значению
-
84.
2.3. Построение объектов
2.3.2. Перегрузка -
85.
2.3.3. Вызов одного конструктора из другого
2.3.4. Инициализация по умолчанию - 86. 2.3.5. Инициализация переменных экземпляра
-
87.
2.3.6. Конечные переменные экземпляра
2.3.7. Конструкторы без аргументов - 88. 2.4. Статические переменные и методы
- 89. 2.4.2. Статические константы
-
90.
2.4.3. Статические блоки инициализации
2.4.4. Статические методы - 91. 2.4.5. Фабричные методы
- 92. 2.5. Пакеты
- 93. 2.5.2. Путь к классу
- 95. 2.5.3. Область действия пакетов
- 96. 2.5.4. Импорт классов
- 97. 2.5.5. Статический импорт
- 98. 2.6. Вложенные классы
- 100. 2.6.2. Внутренние классы
- 102. 2.6.3. Правила специального синтаксиса для внутренних классов
- 103. 2.7. Документирующие комментарии
- 104. 2.7.2. Комментарии к классам
-
105.
2.7.3. Комментарии к методам
2.7.4. Комментарии к переменным
2.7.5. Общие комментарии - 106. 2.7.6. Ссылки
-
107.
2.7.7. Комментарии к пакетам и общие комментарии
2.7.8. Извлечение комментариев - 108. Упражнения
- 111. 3 ИНТЕРФЕЙСЫ И ЛЯМБДА-ВЫРАЖЕНИЯ
- 114. 3.1.2. Реализация интерфейса
-
115.
3.1.3. Преобразование в интерфейсный тип
3.1.4. Приведение типов и операция instanceof - 116. 3.1.5. Расширение интерфейсов
-
117.
3.1.6. Реализация нескольких интерфейсов 115 3.17. Константы
3.2. Методы статические и по умолчанию - 118. 3.2.2. Методы по умолчанию
- 119. 3.2.3. Разрешение конфликтов с методами по умолчанию
- 121. 3.3. Примеры интерфейсов
- 122. 3.3.2. Интерфейс Comparator
- 123. 3.3.3. Интерфейс Runnable
- 124. 3.3.4. Обратные вызовы в пользовательском интерфейсе
- 125. 3.4. Лямбда-выражения
-
127.
3.4.2. Функциональные интерфейсы
3.5. Ссылки на методы и конструкторы - 129. 3.5.2. Ссылки на конструкторы
- 130. 3.6. Обработка лямбда-выражений
- 131. 3.6.2. Вызов функционального интерфейса
- 133. 3.6.3. Реализация собственных функциональных интерфейсов
-
134.
3.7. Область действия лямбда-выражений и переменных
3.7.2. Доступ к переменным из объемлющей области действия - 137. 3.8. Функции высшего порядка
-
138.
3.8.2. Методы, изменяющие функции
3.8.3. Методы из интерфейса Comparator - 139. 3.9. Локальные внутренние классы
- 140. 3.9.2. Анонимные классы
- 141. Упражнения
- 143. 4 НАСЛЕДОВАНИЕ И РЕФЛЕКСИЯ
- 145. 4.1.2. Определение и наследование методов из суперкласса
- 146. 4.1.3. Переопределение методов
-
147.
4.1.4. Построение подкласса
4.1.5. Присваивания в суперклассе - 148. 4.1.6. Приведение типов
-
149.
4.1.7. Конечные методы и классы
4.1.8. Абстрактные методы и классы - 150. 4.1.9. Защищенный доступ
- 151. 4.1.10. Анонимные подклассы
-
152.
4.1.11. Наследование и методы по умолчанию
4.1.12. Ссылки на методы типа super - 153. 4.2. Всеобъемлющий суперкласс Object
- 159. 4.2.4. Клонирование объектов
- 162. 4.3. Перечисления
- 163. 4.3.2. Конструкторы, методы и поля
-
164.
4.3.3. Тела экземпляров
4.3.4. Статические члены - 165. 4.3.5. Переход по перечислению
- 166. 4.4. Динамическая идентификация типов: сведения и ресурсы
- 169. 4.4.2. Загрузка ресурсов
- 170. 4.4.3. Загрузчики классов
- 171. 4.4.4. Загрузчик контекста классов
- 173. 4.4.5. Загрузчики служб
- 174. 4.5. Рефлексия
- 175. 4.5.2. Исследование объектов
-
176.
4.5.3. Вызов методов
4.5.4. Построение объектов - 177. 4.5.5. Компоненты JavaBeans
- 178. 4.5.6. Обращение с массивами
- 180. 4.5.7. Заместители
- 181. Упражнения
- 183. 5 ИСКЛЮЧЕНИЯ, УТВЕРЖДЕНИЯ И ПРОТОКОЛИРОВАНИЕ
- 185. 5.1.2. Иерархия исключений
- 187. 5.1.3. Объявление проверяемых исключений
- 189. 5.1.4. Перехват исключений
- 190. 5.1.5. Оператор try с ресурсами
- 191. 5.1.6. Оператор finally
- 192. 5.1.7. Повторное генерирование и связывание исключений в цепочку
- 194. 5.1.8. Трассировка стека
- 195. 5.2. Утверждения
- 196. 5.2.2. Разрешение и запрет утверждений
- 197. 5.3. Протоколирование
-
198.
5.3.2. Регистраторы
5.3.3. Уровни протоколирования - 199. 5.3.4. Другие методы протоколирования
- 200. 5.3.5. Конфигурация протоколирования
- 201. 5.3.6. Обработчики протоколов
-
204.
5.3.7. Фильтры и средства форматирования
Упражнения - 207. 6 ОБОБЩЕННОЕ ПРОГРАММИРОВАНИЕ
- 209. 6.2. Обобщенные методы
- 210. 6.3. Ограничения типов
- 211. 6.4. Вариантность типов и метасимволы подстановки
- 213. 6.4.2. Метасимволы подстановки супертипов
- 214. 6.4.3. Применение метасимволов подстановки в переменных типа
-
216.
6.4.4. Неограниченные метасимволы подстановки
6.4.5. Захват подстановки - 217. 6.5. Обобщения в виртуальной машине
-
218.
6.5.2. Вставка приведения типов
6.5.3. Мостовые методы -
220.
6.6. Ограничения, накладываемые на обобщения
6.6.2. Во время компиляции все типы оказываются базовыми - 221. 6.6.3. Нельзя получить экземпляры обобщенных типов
- 223. 6.6.4. Нельзя построить массивы параметризированных типов
-
224.
6.6.5. Нельзя употреблять параметры типа класса в статическом контексте
6.6.6. Методы не должны конфликтовать после стирания - 225. 6.6.7. Исключения и обобщения
- 226. 6.7. Обобщения и рефлексия
- 227. 6.7.2. Сведения об обобщенном типе в виртуальной машине
- 229. Упражнения
- 233. 7 КОЛЛЕКЦИИ
- 239. 7.2. Итераторы
- 240. 7.3. Множества
- 242. 7.4. Отображения
- 245. 7.5. Другие коллекции
- 246. 7.5.2. Множества битов
-
248.
7.5.3. Перечислимые множества и отображения
7.5.4. Стеки и разнотипные очереди -
250.
7.5.5. Слабые хеш-отображения
7.6. Представления -
251.
7.6.2. Пустые и одноэлементные представления
7.6.3. Неизменяемые представления - 252. Упражнения
- 255. 8 ПОТОКИ ДАННЫХ
- 258. 8.2. Создание потока данных
-
261.
8.4. Извлечение и соединение потоков данных
8.5. Другие потоковые преобразования - 262. 8.6. Простые методы сведения
- 263. 8.7. Тип Optional
- 264. 8.7.2. Как не следует обращаться с необязательными значениями
- 265. 8.7.3. Формирование необязательных значений
- 266. 8.8. Накопление результатов
- 267. 8.9. Накопление результатов в отображениях
- 269. 8.10. Группирование и разделение
- 270. 8.11. Нисходящие коллекторы
- 272. 8.12. Операции сведения
- 273. 8.13. Потоки данных примитивных типов
- 277. 8.14. Параллельные потоки данных 273 Упражнения
- 281. 9 ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА
- 283. 9.1.2. Ввод байтов
- 284. 9.1.3. Вывод байтов
- 285. 9.1.4. Кодировки символов
- 287. 9.1.5. Ввод текста
- 288. 9.1.6. Вывод текста
- 290. 9.1.7. Ввод-вывод двоичных данных
-
291.
9.1.8. Произвольный доступ к файлам
9.1.9. Отображаемые в памяти файлы -
292.
9.1.10. Блокировка файлов
9.2. Каталоги, файлы и пути к ним - 294. 9.2.2. Создание файлов и каталогов
- 295. 9.2.3. Копирование, перемещение и удаление файлов
- 297. 9.2.4. Обход элементов каталога
- 299. 9.2.5. Системы файлов формата ZIP
- 300. 9.3. Подключения по заданному URL
- 301. 9.4. Регулярные выражения
- 305. 9.4.2. Обнаружение одного или всех совпадений
- 306. 9.4.3. Группы
- 307. 9.4.4. Удаление и замена совпадений
-
308.
9.4.5. Признаки
9.5. Сериализация - 310. 9.5.2. Переходные переменные экземпляра
- 311.
- 312.
- 313. 9.5.5. Контроль версий
- 314. Упражнения
- 317. 10 ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
- 321. 10.1.2. Службы исполнителей и будущих действий
- 323. 10.2. Безопасность потоков исполнения
- 325. 10.2.2. Состояние гонок
- 327. 10.2.3. Методики надежного параллельного программирования
- 328. 10.2.4. Неизменяемые классы
- 329. 10.3. Параллельные алгоритмы
- 330. 10.3.2. Параллельные операции с массивами
- 331. 10.4. Потокобезопасные структуры данных
- 333. 10.4.2. Блокирующие очереди
-
335.
10.4.3. Другие потокобезопасные структуры данных
10.5. Атомарные значения - 338. 10.6. Блокировки
- 339. 10.6.2. Ключевое слово synchronized
- 341. 10.6.3. Ожидание по условию
- 343. 10.7. Потоки исполнения
- 344. 10.7.2. Прерывание потока исполнения
-
346.
10.7.3. Локальные переменные в потоках исполнения
10.7.4. Различные свойства потоков исполнения - 347. 10.8. Асинхронные вычисления
- 349. 10.8.2. Завершаемые будущие действия
- 352. 10.9. Процессы
- 354. 10.9.2. Выполнение процесса
- 355. Упражнения
- 361. 11 АННОТАЦИИ
-
364.
11.1.2. Многие и повторяющиеся аннотации
11.1.3. Объявление аннотаций - 365. 11.1.4. Аннотации в местах употребления типов
- 367. 11.1.5. Явное указание получателей аннотаций
- 368. 11.2. Определение аннотаций
- 370. 11.3. Стандартные аннотации
- 372. 11.3.2. Аннотации для управления ресурсами
- 373. 11.3.3. Мета-аннотации
- 374. 11.4. Обработка аннотаций во время выполнения
- 377. 11.5. Обработка аннотаций на уровне исходного кода
- 378. 11.5.2. Прикладной программный интерфейс API модели языка
- 379. 11.5.3. Генерирование исходного кода с помощью аннотаций
- 381. Упражнения
- 383. 12 ПРИКЛАДНОЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС API ДАТЫ И ВРЕМЕНИ
- 387. 12.2. Местные даты
- 389. 12.3. Корректоры дат
- 390. 12.4. Местное время
- 391. 12.5. Поясное время
- 395. 12.6. Форматирование и синтаксический анализ даты и времени
- 398. 12.7. Взаимодействие с унаследованным кодом 395 Упражнения
- 401. 13 ИНТЕРНАЦИОНАЛИЗАЦИЯ
- 406. 13.1.2. Региональные настройки по умолчанию
-
407.
13.1.3. Отображаемые имена
13.2. Форматы чисел - 408. 13.3. Денежные единицы
- 409. 13.4. Форматирование даты и времени
- 411. 13.5. Сортировка и нормализация
- 413. 13.6. Форматирование сообщений
- 415. 13.7. Комплекты ресурсов
- 417. 13.7.2. Классы комплектов ресурсов
- 418. 13.8. Кодировки символов
- 421. 13.9. Глобальные параметры настройки 417 Упражнения
- 423. 14 КОМПИЛЯЦИЯ И НАПИСАНИЕ СЦЕНАРИЕВ
- 425. 14.1.2. Запуск задания на компиляцию
-
426.
14.1.3. Чтение исходных файлов из оперативной памяти
14.1.4. Запись байт-кодов в оперативную память -
428.
14.1.5. Фиксация диагностической информации
14.2. Прикладной программный интерфейс API для сценариев - 429. 14.2.2. Привязки
- 430. 14.2.3. Переадресация ввода-вывода
- 431. 14.2.4. Вызов функций и методов из сценариев
-
432.
14.2.5. Компилирование сценария
14.3. Интерпретатор Nashorn -
434.
14.3.2. Вызов методов получения, установки и перегружаемых методов
14.3.3. Построение объектов Java -
436.
14.3.4. Символьные строки в JavaScript и Java
14.3.5. Числа - 437. 14.3.6. Обращение с массивами
- 438. 14.3.7. Списки и отображения
- 439. 14.3.8. Лямбда-выражения
- 440. 14.3.9. Расширение классов и реализация интерфейсов в Java
- 441. 14.3.10. Исключения
- 442. 14.4. Написание сценариев командного процессора средствами Nashorn
- 443. 14.4.2. Интерполяция символьных строк
- 444. 14.4.3. Ввод данных в сценарий
- 445. Упражнения
- 449. ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Author: Хорстманн К.
Tags: компьютерные технологии программирование компьютерные науки язык программирования java
ISBN: 978-5-8459-2004-1 (рус)
Year: 2015