Читать онлайн «Java 2 v5.0 (Tiger). Новые возможности»

Автор Герберт Шилдт

 TOC \o "1-3" Глава 2  PAGEREF _Toc122849198 \h 5
Автоупаковка и автораспаковка  PAGEREF _Toc122849199 \h 5
Обзор оболочек типов и упаковки значений  PAGEREF _Toc122849200 \h 5
Основы автоупаковки/распаковки  PAGEREF _Toc122849201 \h 6
Автоупаковка и методы  PAGEREF _Toc122849202 \h 7
Автоупаковка/распаковка в выражениях  PAGEREF _Toc122849203 \h 8
Автоупаковка/распаковка логических и символьных значений  PAGEREF _Toc122849204 \h 10
Помощь автоупаковки/распаковки в предупреждении ошибок  PAGEREF _Toc122849205 \h 11
Предостережения  PAGEREF _Toc122849206 \h 12
Глава 3  PAGEREF _Toc122849207 \h 12
Настраиваемые типы  PAGEREF _Toc122849208 \h 12
Что такое настраиваемые типы  PAGEREF _Toc122849209 \h 13
Простой пример применения настраиваемых типов  PAGEREF _Toc122849210 \h 13
Средства настройки типов работают только с объектами  PAGEREF _Toc122849211 \h 17
Различия настраиваемых типов, основанных  PAGEREF _Toc122849212 \h 17
на разных аргументах типа  PAGEREF _Toc122849213 \h 17
Как настраиваемые типы улучшают типовую безопасность  PAGEREF _Toc122849214 \h 17
Настраиваемый класс  PAGEREF _Toc122849215 \h 19
с двумя параметрами типа  PAGEREF _Toc122849216 \h 19
Общий вид объявления настраиваемого класса  PAGEREF _Toc122849217 \h 21
Ограниченные типы  PAGEREF _Toc122849218 \h 21
Применение метасимвольных аргументов  PAGEREF _Toc122849219 \h 23
Ограниченные метасимвольные аргументы  PAGEREF _Toc122849220 \h 26
Создание настраиваемого метода  PAGEREF _Toc122849221 \h 30
Настраиваемые конструкторы  PAGEREF _Toc122849222 \h 32
Настраиваемые интерфейсы  PAGEREF _Toc122849223 \h 33
Типы raw и разработанный ранее код  PAGEREF _Toc122849224 \h 35
Иерархии настраиваемых классов  PAGEREF _Toc122849225 \h 38
Использование настраиваемого суперкласса  PAGEREF _Toc122849226 \h 38
Настраиваемый подкласс  PAGEREF _Toc122849227 \h 40
Сравнения типов настраиваемой иерархии во время выполнения программы  PAGEREF _Toc122849228 \h 41
Переопределенные методы в настраиваемом классе  PAGEREF _Toc122849229 \h 42
Настраиваемые типы и коллекции  PAGEREF _Toc122849230 \h 44
Стирание  PAGEREF _Toc122849232 \h 47
Методы-подставки  PAGEREF _Toc122849233 \h 48
Ошибки неоднозначности  PAGEREF _Toc122849234 \h 50
Некоторые ограничения применения настраиваемых типов  PAGEREF _Toc122849235 \h 51
Нельзя создавать объекты, используя параметры типа  PAGEREF _Toc122849236 \h 51
Ограничения для статических членов класса  PAGEREF _Toc122849237 \h 51
Ограничения для настраиваемого массива  PAGEREF _Toc122849238 \h 52
Ограничение настраиваемых исключений  PAGEREF _Toc122849239 \h 53
Заключительные замечания  PAGEREF _Toc122849240 \h 53
Глава 4  PAGEREF _Toc122849241 \h 53
Вариант For-Each цикла for  PAGEREF _Toc122849242 \h 53
Описание цикла for-each  PAGEREF _Toc122849243 \h 53
Обработка многомерных массивов в цикле  PAGEREF _Toc122849244 \h 56
Область применения цикла for в стиле for-each  PAGEREF _Toc122849245 \h 57
Использование цикла for в стиле for-each для обработки коллекций  PAGEREF _Toc122849246 \h 58
Создание объектов, реализующих интерфейс Iterable  PAGEREF _Toc122849247 \h 59
Глава 5  PAGEREF _Toc122849250 \h 62
Аргументы переменной длины  PAGEREF _Toc122849251 \h 62
Средство формирования списка с переменным числом аргументов  PAGEREF _Toc122849252 \h 62
Перегрузка методов с аргументом переменной длины  PAGEREF _Toc122849253 \h 65
Аргументы переменной длины и неоднозначность  PAGEREF _Toc122849254 \h 66
Глава 6  PAGEREF _Toc122849255 \h 68
Перечислимые типы  PAGEREF _Toc122849256 \h 68
Описание перечислимого типа  PAGEREF _Toc122849257 \h 69
Методы values() и valueOf()  PAGEREF _Toc122849258 \h 71
Перечислимый тип в Java — это класс  PAGEREF _Toc122849259 \h 72
Перечислимые типы, наследующие тип enum  PAGEREF _Toc122849260 \h 74
Глава 7  PAGEREF _Toc122849261 \h 78
Метаданные  PAGEREF _Toc122849262 \h 78
Описание средства "метаданные"  PAGEREF _Toc122849263 \h 78
Задание правил сохранения  PAGEREF _Toc122849264 \h 79
Получение аннотаций во время выполнения программы с помощью рефлексии  PAGEREF _Toc122849265 \h 79
Интерфейс AnnotatedElement  PAGEREF _Toc122849266 \h 83
Использование значений по умолчанию  PAGEREF _Toc122849267 \h 83
Аннотации-маркеры  PAGEREF _Toc122849268 \h 85
Одночленные аннотации  PAGEREF _Toc122849269 \h 86
Встроенные аннотации  PAGEREF _Toc122849270 \h 87
Несколько ограничений  PAGEREF _Toc122849271 \h 89
Глава 8  PAGEREF _Toc122849272 \h 89
Статический импорт  PAGEREF _Toc122849273 \h 89
Описание статического импорта  PAGEREF _Toc122849274 \h 89
Общий вид оператора статического импорта  PAGEREF _Toc122849275 \h 91
Импорт статических членов классов, созданных Вами  PAGEREF _Toc122849276 \h 91
Неоднозначность  PAGEREF _Toc122849277 \h 93
Предупреждение  PAGEREF _Toc122849278 \h 93
Глава 9  PAGEREF _Toc122849279 \h 94
Форматированный ввод/вывод  PAGEREF _Toc122849280 \h 94
Форматирование вывода с помощью класса Formatter  PAGEREF _Toc122849281 \h 94
Конструкторы класса Formatter  PAGEREF _Toc122849282 \h 95
Методы класса Formatter  PAGEREF _Toc122849283 \h 95
Основы форматирования  PAGEREF _Toc122849284 \h 96
Форматирование строк и символов  PAGEREF _Toc122849285 \h 98
Форматирование чисел  PAGEREF _Toc122849286 \h 98
Форматирование времени и даты  PAGEREF _Toc122849287 \h 99
Спецификаторы %n и %%  PAGEREF _Toc122849288 \h 100
Задание минимальной ширины поля  PAGEREF _Toc122849289 \h 101
Задание точности представления  PAGEREF _Toc122849290 \h 102
Применение флагов форматирования  PAGEREF _Toc122849291 \h 103
Выравнивание вывода  PAGEREF _Toc122849292 \h 103
Флаги Space, +, 0 и (  PAGEREF _Toc122849293 \h 104
Флаг запятая  PAGEREF _Toc122849294 \h 105
Флаг #  PAGEREF _Toc122849295 \h 105
Применение верхнего регистра  PAGEREF _Toc122849296 \h 105
Использование порядкового номера аргумента  PAGEREF _Toc122849297 \h 106
Применение метода printf() языка Java  PAGEREF _Toc122849298 \h 107
Класс Scanner  PAGEREF _Toc122849299 \h 109
Конструкторы класса Scanner  PAGEREF _Toc122849300 \h 109
Описание форматирования входных данных  PAGEREF _Toc122849301 \h 110
Несколько примеров применения класса Scanner  PAGEREF _Toc122849302 \h 112
Установка разделителей  PAGEREF _Toc122849303 \h 116
Другие свойства класса Scanner  PAGEREF _Toc122849304 \h 117
Глава 10  PAGEREF _Toc122849305 \h 118
Изменения в API  PAGEREF _Toc122849306 \h 118
Возможность применения настраиваемых типов при работе с коллекциями  PAGEREF _Toc122849307 \h 119
Обновление класса Collections  PAGEREF _Toc122849308 \h 120
Почему настраиваемые коллекции  PAGEREF _Toc122849309 \h 120
Модернизация других классов и интерфейсов для применения настраиваемых типов  PAGEREF _Toc122849310 \h 121
Новые классы и интерфейсы, добавленные в пакет java. lang  PAGEREF _Toc122849311 \h 121
Класс ProcessBulider  PAGEREF _Toc122849312 \h 122
Класс StringBuilder  PAGEREF _Toc122849313 \h 123
Интерфейс Appendable  PAGEREF _Toc122849314 \h 123
Интерфейс Iterable  PAGEREF _Toc122849315 \h 123
Интерфейс Readable  PAGEREF _Toc122849316 \h 124
Новые методы побитной обработки классов Integer и Long  PAGEREF _Toc122849317 \h 124
Методы signum() и reverseBytes()  PAGEREF _Toc122849318 \h 125
Поддержка 32-битных кодовых точек для символов Unicode  PAGEREF _Toc122849319 \h 126
Новые подпакеты пакета java. lang  PAGEREF _Toc122849320 \h 126
java. lang.
annotation  PAGEREF _Toc122849321 \h 126
java. lang.