Java 7

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", N102, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Author(s): Ильдар Хабибуллин
Publisher: БХВ-Петербург
Year: 2012

Language: Russian
Pages: 768
City: Санкт-Петербург

Введение ......Page 19
Что такое Java? ......Page 20
Структура книги ......Page 21
Выполнение Java-программы ......Page 24
Что такое JDK? ......Page 25
Как установить JDK? ......Page 27
Как использовать JDK? ......Page 28
Особая позиция Microsoft ......Page 30
Java в Интернете ......Page 31
Литература по Java ......Page 32
Благодарности ......Page 33
ЧАСТЬ I. БАЗОВЫЕ КОНСТРУКЦИИ ЯЗЫКА JAVA ......Page 35
Первая программа на Java ......Page 37
Комментарии ......Page 40
Целые ......Page 42
Символы ......Page 43
Строки ......Page 44
Примитивные типы данных и операции ......Page 45
Логические операции ......Page 47
Целые типы ......Page 48
Арифметические операции ......Page 49
Приведение типов ......Page 50
Побитовые операции ......Page 52
Сдвиги ......Page 53
Вещественные типы ......Page 54
Операции присваивания ......Page 55
Выражения ......Page 56
Приоритет операций ......Page 57
Операторы ......Page 58
Условный оператор ......Page 59
Упражнения ......Page 61
Операторы цикла ......Page 62
Оператор continue и метки ......Page 64
Оператор варианта ......Page 65
Массивы ......Page 67
Многомерные массивы ......Page 69
Вопросы для самопроверки ......Page 71
Парадигмы программирования ......Page 73
Абстракция ......Page 76
Иерархия ......Page 79
Ответственность ......Page 80
Модульность ......Page 81
Принцип KISS ......Page 83
Как описать класс и подкласс? ......Page 84
Передача аргументов в метод ......Page 86
Перегрузка методов ......Page 87
Переопределение методов ......Page 88
Реализация полиморфизма в Java ......Page 89
Абстрактные методы и классы ......Page 90
Окончательные члены и классы ......Page 91
Класс Object ......Page 92
Конструкторы класса ......Page 93
Статические члены класса ......Page 94
Класс Complex ......Page 96
Метод main() ......Page 99
Методы с переменным числом аргументов ......Page 100
Где видны переменные ......Page 101
Вложенные классы ......Page 103
Отношения "быть частью" и "являться" ......Page 107
Вопросы для самопроверки ......Page 108
Глава 3. Пакеты, интерфейсы и перечисления ......Page 109
Пакет и подпакет ......Page 110
Права доступа к членам класса ......Page 111
Размещение пакетов по файлам ......Page 113
Импорт классов и пакетов ......Page 115
Java-файлы ......Page 116
Интерфейсы ......Page 117
Перечисления ......Page 121
Объявление аннотаций ......Page 124
Схема проектирования MVC ......Page 126
Шаблон Singleton ......Page 127
Вопросы для самопроверки ......Page 129
ЧАСТЬ II. ИСПОЛЬЗОВАНИЕ КЛАССОВ ИЗ JAVA API ......Page 131
Глава 4. Классы-оболочки и generics ......Page 133
Числовые классы ......Page 134
Автоматическая упаковка и распаковку типов ......Page 136
Настраиваемые типы (generics) ......Page 137
Шаблон типа (wildcard type) ......Page 140
Настраиваемые методы ......Page 141
Класс Boolean ......Page 142
Класс Character ......Page 143
Класс Biglnteger ......Page 146
Класс BigDecimal ......Page 148
Класс Class ......Page 152
Вопросы для самопроверки ......Page 155
Глава 5. Работа со строками ......Page 156
Как создать строку ......Page 157
Как узнать длину строки ......Page 162
Как выбрать подстроку ......Page 163
Как сравнить строки ......Page 164
Как найти символ в строке ......Page 166
Как изменить регистр букв ......Page 167
Как преобразовать в строку данные другого типа ......Page 168
Конструкторы ......Page 169
Как вставить подстроку ......Page 170
Как перевернуть строку ......Page 171
Класс StringTokenizer ......Page 172
Вопросы для самопроверки ......Page 173
Класс Vector ......Page 174
Как добавить элемент в вектор ......Page 175
Как узнать, есть ли элемент в векторе ......Page 176
Как удалить элементы ......Page 177
Класс Stack ......Page 178
Класс Hashtable ......Page 179
Как получить значение по ключу ......Page 180
Как удалить элементы ......Page 181
Класс Properties ......Page 182
Интерфейс List ......Page 185
Интерфейс SortedSet ......Page 186
Интерфейс NavigableSet ......Page 187
Интерфейс Degue ......Page 188
Интерфейс BlockingDeque ......Page 189
Интерфейс Map ......Page 190
Интерфейс NavigableMap ......Page 191
Абстрактные классы-коллекции ......Page 192
Интерфейс Iterator ......Page 193
Интерфейс Listlterator ......Page 194
Классы, создающие списки ......Page 195
Дек ......Page 196
Упорядоченные отображения ......Page 197
Сравнение элементов коллекций ......Page 198
Связанные множества ......Page 199
Методы класса Collections ......Page 200
Упражнение ......Page 201
Вопросы для самопроверки ......Page 202
Бинарный поиск в массиве ......Page 203
Копирование массива ......Page 204
Представление массива строкой ......Page 205
Локальные установки ......Page 206
Часовой пояс и летнее время ......Page 208
Подкласс GregorianCalendar ......Page 209
Представление даты и времени ......Page 210
Копирование массивов ......Page 211
Взаимодействие с системой ......Page 212
ЧАСТЬ III. СОЗДАНИЕ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ И АППЛЕТОВ ......Page 214
Глава 8. Принципы построения графического интерфейса ......Page 215
Компонент и контейнер ......Page 217
Иерархия классов AWT ......Page 220
Окно библиотеки Swing ......Page 221
Использование системных приложений ......Page 222
System Tray ......Page 223
Вопросы для самопроверки ......Page 224
Как задать цвет ......Page 226
Как нарисовать чертеж ......Page 228
Класс Polygon ......Page 229
Прочие методы класса Graphics ......Page 230
Как задать шрифт ......Page 231
Класс FontMetrics ......Page 235
Возможности Java 2D ......Page 238
Класс AffineTransform ......Page 240
Класс BasicStroke ......Page 243
Класс GeneralPath ......Page 246
Классы GradientPaintn TexturePaint ......Page 247
Классы LinearGradientPaint и RadialGradientPaint ......Page 249
Вывод текста средствами Java 2D ......Page 250
Методы улучшения визуализации ......Page 254
Вопросы для самопроверки ......Page 256
Класс Component ......Page 257
Как создать свой курсор ......Page 259
События ......Page 260
Класс Container ......Page 261
Кнопка Вutton ......Page 262
Класс CheckboxGroup ......Page 263
Как создать группу радиокнопок ......Page 264
Раскрывающийся список Choice ......Page 265
Список List ......Page 266
События ......Page 267
Класс TextComponent ......Page 268
Поле ввода TextArea ......Page 269
События ......Page 270
События ......Page 272
Контейнер Panel ......Page 274
Контейнер ScrollPane ......Page 275
События ......Page 276
События ......Page 277
Контейнер Dialog ......Page 279
События ......Page 280
События ......Page 282
Компонент Canvas ......Page 283
Создание "легкого" компонента ......Page 285
Создание меню ......Page 287
Всплывающее меню ......Page 292
Вопросы для самопроверки ......Page 295
Глава 11. Оформление ГИП компонентами Swing ......Page 296
Состав библиотеки Swing ......Page 297
Компонент JComponent ......Page 299
Схема MVC в компонентах Swing ......Page 300
Надпись JLabel ......Page 302
Кнопки ......Page 304
Кнопка выбора JToggleButton ......Page 306
Радиокнопка JRadioButton ......Page 308
Упражнение ......Page 309
Раскрывающийся список JComboBox ......Page 310
Список выбора JList ......Page 311
Визуализация элементов списков ......Page 312
Счетчик JSpinner ......Page 314
Ползунок JSlider ......Page 316
Дерево объектов JTree ......Page 318
Строка меню JMenuBar ......Page 322
Пункт меню JMenuItem ......Page 323
Всплывающее меню JPopupМеnu ......Page 325
Панель выбора цвета JColorChooser ......Page 326
Фильтр файлов FileFilter ......Page 328
Дополнительный компонент ......Page 330
Замена изображений ......Page 331
Вопросы для самопроверки ......Page 333
Модель данных — документ ......Page 334
Строка символов Segment ......Page 335
Атрибуты текста ......Page 336
Внесение структуры в документ ......Page 337
Реализации документа ......Page 338
Вид ......Page 339
Курсор ......Page 341
Ограничение перемещения курсора ......Page 342
Раскладка клавиатуры ......Page 343
Поле ввода JTextField ......Page 344
Редактор объектов JFormattedTextField ......Page 347
Область ввода JTextArea ......Page 348
Текстовый редактор JEditorPane ......Page 349
Вопросы для самопроверки ......Page 350
Класс JTable ......Page 351
Модель ячеек таблицы ......Page 353
Заголовки столбцов таблицы JTableHeader ......Page 358
Модель выделения ячеек ......Page 360
Визуализация ячеек таблицы ......Page 361
Редактор ячеек таблицы ......Page 364
Сортировка строк таблицы ......Page 367
Фильтрация строк таблицы ......Page 369
Печать таблицы ......Page 370
Вопросы для самопроверки ......Page 371
Менеджер FlowLayout ......Page 372
Менеджер BorderLayout ......Page 374
Менеджер GridLayout ......Page 376
Менеджер CardLayout ......Page 377
Менеджер GridBagLayout ......Page 379
Панель JPanel ......Page 381
Панель прокрутки JScrollPane ......Page 382
Двойная панель JSplitPane ......Page 384
Панель с вкладками JTabbedPane ......Page 385
Менеджер размещения BoxLayout ......Page 387
Компоненты-заполнители ......Page 388
Менеджер размещения SpringLayout ......Page 389
Размеры Spring ......Page 390
Промежутки Constraints ......Page 391
Размещение компонентов ......Page 392
Панель инструментальных кнопок JToolBar ......Page 393
Интерфейс Action ......Page 395
Слоеная панель JLayeredPane ......Page 396
Корневая панель JRootPane ......Page 397
Окно JWindow ......Page 399
Диалоговое окно JDialog ......Page 400
Окно верхнего уровня JFrame ......Page 401
Внутреннее окно JlntemalFrame ......Page 402
Рабочий стол JDesktopPane ......Page 404
Стандартные диалоги JOptionPane ......Page 405
Окно с индикатором ProgressMonitor ......Page 409
Заключение ......Page 410
Вопросы для самопроверки ......Page 411
Глава 15. Обработка событий ......Page 412
Самообработка событий ......Page 416
Обработка вложенным классом ......Page 417
Событие ActionEvent ......Page 418
Обработка действий мыши ......Page 419
Классы-адаптеры ......Page 422
Управление колесиком мыши ......Page 423
Обработка действий клавиатуры ......Page 424
Событие TextEvent ......Page 425
Обработка действий с окном ......Page 426
Событие ComponentEvent ......Page 427
Событие ItemEvent ......Page 428
Событие AdjustmentEvent ......Page 429
Несколько слушателей одного источника ......Page 431
Диспетчеризация событий ......Page 432
Создание собственного события ......Page 434
Вопросы для самопроверки ......Page 435
Глава 16. Оформление рамок ......Page 436
Прямолинейная рамка LineВorder ......Page 438
Закругленная объемная рамка SoftBevelBorder ......Page 439
Рамка с изображением MatteBorder ......Page 440
Рамки с надписями TitfedBorder ......Page 441
Сдвоенные рамки CompoundBorder ......Page 444
Создание собственных рамок ......Page 445
Вопросы для самопроверки ......Page 450
Глава 17. Изменение внешнего вида компонента ......Page 451
Получение свойств L&F ......Page 453
Задание стандартного L&F ......Page 455
Смена всего L&F ......Page 457
Замена отдельных свойств L&F ......Page 459
Темы Java L&F ......Page 462
Вопросы для самопроверки ......Page 465
Глава 18. Апплеты ......Page 466
Передача параметров в апплет ......Page 472
Атрибуты тега ......Page 475
Сведения об окружении апплета ......Page 476
Слежение за процессом загрузки ......Page 477
Класс MediaTracker ......Page 478
Защита от апплета ......Page 480
Апплеты в библиотеке Swing ......Page 481
Апплет JApplet ......Page 482
Упражнение ......Page 483
Вопросы для самопроверки ......Page 484
Свойства экземпляра компонента ......Page 485
Передача фокуса ввода ......Page 486
Перенос данных Drag and Drop ......Page 491
Временная задержка Timer ......Page 492
Модель "поставщик-потребитель" ......Page 494
Классы-фильтры ......Page 497
Как выделить фрагмент изображения ......Page 498
Как изменить цвет изображения ......Page 499
Как переставить пикселы изображения ......Page 500
Модель обработки прямым доступом ......Page 501
Аффинное преобразование изображения ......Page 504
Изменение интенсивности изображения ......Page 507
Изменение составляющих цвета ......Page 508
Создание различных эффектов ......Page 509
Анимация ......Page 510
Улучшение изображения двойной буферизацией ......Page 512
Звук ......Page 516
Проигрывание звука в Java ......Page 517
Синтез и запись звука в Java ......Page 522
Упражнение ......Page 524
Вопросы для самопроверки ......Page 525
ЧАСТЬ IV. НЕОБХОДИМЫЕ КОНСТРУКЦИИ JAVA ......Page 527
Глава 21. Обработка исключительных ситуаций ......Page 529
Блоки перехвата исключения ......Page 530
Часть заголовка метода throws ......Page 533
Обработка нескольких типов исключений с помощью иерархии ......Page 536
Иерархия классов-исключений ......Page 537
Упражнение ......Page 538
Создание собственных исключений ......Page 539
Вопросы для самопроверки ......Page 541
Глава 22. Подпроцессы ......Page 542
Класс Thread ......Page 545
Синхронизация подпроцессов ......Page 550
Согласование работы нескольких подпроцессов ......Page 552
Приоритеты подпроцессов ......Page 557
Подпроцессы-демоны ......Page 558
Вопросы для самопроверки ......Page 559
Глава 23. Потоки ввода/вывода и печать ......Page 560
Консольный ввод/вывод ......Page 565
Форматированный вывод ......Page 568
Спецификации вывода целых чисел ......Page 569
Спецификации вывода даты и времени ......Page 570
Класс Console ......Page 571
Файловый ввод/вывод ......Page 572
Получение свойств файла ......Page 574
Работа с файлом средствами NIO2 ......Page 576
Буферизованный ввод/вывод ......Page 578
Каналы буферизованного ввода/вывода ......Page 579
Упражнения ......Page 581
Класс DataOutputStream ......Page 582
Прямой доступ к файлу ......Page 584
Каналы обмена информацией ......Page 585
Сериализация объектов ......Page 587
Печать в Java ......Page 590
Печать средствами Java 2D ......Page 592
Печать файла ......Page 596
Печать страниц c разными параметрами ......Page 598
Вопросы для самопроверки ......Page 599
Глава 24. Сетевые средства Java ......Page 601
Работа в WWW ......Page 604
Упражнения ......Page 607
Работа по протоколу TCP ......Page 608
Работа с proxy-сервером ......Page 611
Работа по протоколу UDP ......Page 612
Вопросы для самопроверки ......Page 614
ЧАСТЬ V. WEB-ТЕХНОЛОГИИ JAVA ......Page 617
Архиватор jar ......Page 619
Создание архива ......Page 620
Файл описания MANIFEST.MF ......Page 622
Файл INDEX.LIST ......Page 623
Компоненты JavaBeans ......Page 624
Связь с базами данных через JDBC ......Page 625
Вопросы для самопроверки ......Page 629
Глава 26. Сервлеты ......Page 631
Web-приложение ......Page 632
Интерфейс Servlet ......Page 633
Конфигурационный файл ......Page 634
Интерфейс ServletConfig ......Page 637
Метод Service ......Page 639
Интерфейс ServletRequest ......Page 640
Цикл работы сервлета ......Page 641
Класс GenericServlet ......Page 642
Интерфейс HttpServletRequest ......Page 643
Интерфейс HttpServletResponse ......Page 645
Аннотации сервлета ......Page 646
Пример сервлета класса HttpServlet ......Page 647
Сеанс связи с сервлетом ......Page 652
Фильтры ......Page 655
Обращение к другим ресурсам ......Page 660
Асинхронное выполнение запросов ......Page 661
Вопросы для самопроверки ......Page 664
Глава 27. Страницы JSP ......Page 665
Стандартные действия (теги) JSP ......Page 668
Язык записи выражений EL ......Page 671
Встроенные объекты JSP ......Page 672
Обращение к компоненту JavaBean ......Page 674
Выполнение апплетав браузере клиента ......Page 675
Передача управления ......Page 676
Пользовательские теги ......Page 677
Класс-обработчик пользовательского тега ......Page 679
Пользовательский тег с атрибутами ......Page 681
Пользовательский тег с телом ......Page 682
Обработка тела пользовательского тега ......Page 684
Обработка взаимодействующих тегов ......Page 686
Обработка тегов средствами JSP ......Page 690
Стандартные библиотеки тегов JSTL ......Page 692
Библиотека core ......Page 693
Библиотека fmt ......Page 696
Frameworks ......Page 697
JavaServer Faces ......Page 698
Вопросы для самопроверки ......Page 703
Глава 28. Связь Java с технологией XML ......Page 704
Описание DTD ......Page 709
Пространства имен XML ......Page 711
Схема XML ......Page 713
Строки символов ......Page 714
Прочие встроенные простые типы ......Page 715
Сужение ......Page 716
Список ......Page 717
Объединение ......Page 718
Определение сложных типов ......Page 719
Определение типа элемента с простым телом ......Page 720
Определение типа вложенных элементов ......Page 721
Определение типа со сложным телом ......Page 723
Пример: схема адресной книги ......Page 724
Безымянные типы ......Page 726
Пространства имен языка XSD ......Page 728
Включение файлов схемы в другую схему ......Page 730
Связь документа XML со своей схемой ......Page 731
Инструкции по обработке ......Page 732
Анализ документа XML ......Page 733
Анализ документов XML с помощью SAX2 ......Page 734
Анализ документов XML с помощью StAX ......Page 741
Связывание данных XML с объектами Java ......Page 743
Объекты данных JDO ......Page 744
Анализ документов XML с помощью DOM API ......Page 745
Интерфейс Node ......Page 746
Интерфейс Document ......Page 747
Интерфейс Element ......Page 748
Другие DOM-парсеры ......Page 751
Преобразование дерева объектов в XML ......Page 752
Таблицы стилей XSL ......Page 754
Преобразование документа XML в HTML ......Page 756
Вопросы для самопроверки ......Page 757
Список литературы ......Page 758
Предметный указатель ......Page 760