Java. Методики программирования Шилдта
Герберт Шилдт
Книга общепризнанного авторитета в области языков программирования построена в виде готовых рецептов, иллюстрирующих передовые приемы и подходы в программировании на Java. В каждом рецепте описан набор ключевых ингредиентов, таких как классы, интерфейсы и методы. Затем даются шаги, которые потребуется предпринять, собирая из этих ингредиентов последовательность кода, необходимого для достижения нужного результата. Подробно рассматриваются такие темы, как обработка строк, использование регулярных выражений, работа с файлами, создание аплетов и сервлетов, построение графических интерфейсов с помощью Swing, применение каркаса коллекций, многопоточность и форматирование данных.
Книга рассчитана на программистов разной квалификации, а также будет полезна студентам и преподавателям дисциплин, связанных с программированием на языке Java.
Издательство: Вильямс, 2008 г.
ISBN 978-5-8459-1395-1, 978-0-07-226315-2
Количество страниц: 512.
Содержание книги «Java. Методики программирования Шилдта»:
- 18 Об авторе
- 19 Предисловие
- 19 Коды примеров
- 19 Другие книги автора
- 20 От издательства
- 21 Глава 1. Обзор
- 21 Что внутри
- 23 Как организованы рецепты
- 23 Несколько предостережений
- 24 Необходимый опыт работы с Java
- 24 Версия Java
- 25 Глава 2. Работа со строками и регулярными выражениями
- 26 Обзор строковых классов Java
- 28 API регулярных выражений Java
- 28 Введение в регулярные выражения
- 29 Нормальные символы
- 29 Классы символов
- 30 Шаблонные символы
- 30 Квантификаторы
- 31 Жадные, вынужденные и собственнические квантификаторы
- 31 Граничные маркеры
- 32 Операция «ИЛИ»
- 32 Группы
- 33 Флаговые последовательности
- 34 Не забывайте о защите \ в строках Java
- 34 Сортировка массива строк в обратном порядке
- 35 Необходимые шаги
- 35 Обсуждение
- 36 Пример
- 37 Варианты и альтернативы
- 37 Игнорирование различий регистра при сортировке массива строк
- 38 Необходимые шаги
- 38 Обсуждение
- 39 Пример
- 40 Варианты и альтернативы
- 41 Игнорирование различий регистра при поиске и замене подстрок
- 41 Необходимые шаги
- 42 Обсуждение
- 42 Пример
- 43 Варианты и альтернативы
- 44 Разбиение строки на части с помощью split()
- 44 Необходимые шаги
- 7 Обсуждение 45 Содержание
- 45 Пример
- 46 Варианты и альтернативы
- 47 Извлечение из String пар «ключ/значение»
- 47 Необходимые шаги
- 48 Обсуждение
- 48 Пример
- 50 Варианты и альтернативы
- 50 Нахождение соответствия и извлечение подстрок с использованием API регулярных выражений
- 51 Необходимые шаги
- 51 Обсуждение
- 52 Пример
- 52 Опции и атрибуты
- 53 Разбиение строк на лексемы с использованием API регулярных выражений
- 54 Необходимые шаги
- 55 Обсуждение
- 56 Пример
- 58 Дополнительный пример
- 65 Варианты и альтернативы
- 67 Глава 3. Работа с файлами
- 68 Обзор работы с файлами
- 69 Потоки
- 73 Класс RandomAccessFile
- 73 Класс File
- 73 Интерфейсы ввода-вывода
- 74 Сжатые файловые потоки
- 75 Советы по обработке ошибок
- 76 Чтение байтов из файла
- 76 Необходимые шаги
- 77 Обсуждение
- 77 Пример
- 78 Варианты и альтернативы
- 79 Запись байтов в файл
- 80 Необходимые шаги
- 80 Обсуждение
- 80 Пример
- 81 Варианты и альтернативы
- 82 Буферизованный байтовый ввод-вывод файлов
- 83 Необходимые шаги
- 83 Обсуждение
- 83 Пример
- 85 Варианты и альтернативы
- 85 Чтение символов из файла
- 86 Необходимые шаги
- 86 Обсуждение
- 86 Пример
- 87 Варианты и альтернативы
- 88 Запись символов в файл
- 89 Необходимые шаги
- 89 Обсуждение
- 89 Пример
- 90 Варианты и альтернативы
- 91 Буферизованный символьный ввод-вывод файлов
- 92 Необходимые шаги
- 92 Обсуждение
- 93 Пример
- 94 Варианты и альтернативы
- 95 Чтение и запись файлов произвольного доступа
- 96 Необходимые шаги
- 96 Обсуждение
- 97 Пример
- 98 Варианты и альтернативы
- 98 Получение атрибутов файла
- 99 Необходимые шаги
- 99 Обсуждение
- 99 Пример
- 101 Варианты и альтернативы
- 101 Установка атрибутов файла
- 101 Необходимые шаги
- 101 Обсуждение
- 102 Пример
- 103 Варианты и альтернативы
- 104 Список каталога
- 104 Необходимые шаги
- 105 Обсуждение
- 106 Пример
- 107 Пример-бонус
- 108 Варианты и альтернативы
- 109 Сжатие и распаковка данных
- 109 Необходимые шаги
- 110 Обсуждение
- 111 Пример
- 113 Варианты и альтернативы
- 113 Создание ZIP-файла
- 114 Необходимые шаги
- 114 Обсуждение
- 115 Пример
- 117 Варианты и альтернативы
- 118 Распаковка ZIP-файла
- 118 Необходимые шаги
- 119 Обсуждение
- 120 Пример
- 122 Варианты и альтернативы
- 122 Сериализация объектов
- 123 Необходимые шаги
- 123 Обсуждение
- 124 Пример
- 126 Варианты и альтернативы
- 68 Обзор работы с файлами
- 127 Глава 4. Форматирование данных
- 128 Обзор класса Formatter
- 129 Основы форматирования
- 131 Спецификация минимальной ширины поля
- 131 Спецификация точности
- 132 Использование флагов формата
- 132 Опция верхнего регистра
- 133 Использования индекса аргумента
- 133 Обзор NumberFormat и DateFormat
- 134 Четыре простых приема форматирования чисел с использованием Formatter
- 134 Необходимые шаги
- 134 Обсуждение
- 135 Пример
- 136 Варианты и альтернативы
- 136 Вертикальное выравнивание числовых данных с использованием Formatter
- 136 Необходимые шаги
- 137 Обсуждение
- 137 Пример
- 138 Пример-бонус
- 140 Варианты и альтернативы
- 141 Выравнивание данных влево с использованием Formatter
- 141 Необходимые шаги
- 141 Обсуждение
- 141 Пример
- 142 Варианты и альтернативы
- 143 Форматирование времени и даты с использованием Formatter
- 143 Необходимые шаги
- 143 Обсуждение
- 145 Пример
- 146 Варианты и альтернативы
- 147 Указание локали с использованием Formatter
- 147 Необходимые шаги
- 147 Обсуждение
- 148 Пример
- 149 Варианты и альтернативы
- 149 Использование потоков с Formatter
- 149 Необходимые шаги
- 149 Обсуждение
- 150 Пример
- 151 Варианты и альтернативы
- 151 Использование printf() для отображения форматированных данных
- 152 Необходимые шаги
- 152 Обсуждение
- 152 Пример
- 153 Пример-бонус
- 154 Варианты и альтернативы
- 155 Форматирование времени и даты с помощью DateFormat
- 155 Необходимые шаги
- 156 Обсуждение
- 156 Пример
- 157 Варианты и альтернативы
- 158 Форматирование времени и даты с помощью шаблонов, используя SimpleDateFormat
- 158 Необходимые шаги
- 158 Обсуждение
- 160 Пример
- 160 Варианты и альтернативы
- 161 Форматирование числовых значений с помощью NumberFormat
- 161 Необходимые шаги
- 162 Обсуждение
- 162 Пример
- 163 Варианты и альтернативы
- 164 Форматирование денежных значений с помощью NumberFormat
- 164 Необходимые шаги
- 164 Обсуждение
- 164 Пример
- 165 Варианты и альтернативы
- 165 Форматирование числовых значений с помощью шаблонов, используя DecimalFormat
- 165 Необходимые шаги
- 165 Обсуждение
- 166 Пример
- 167 Варианты и альтернативы
- 128 Обзор класса Formatter
- 169 Глава 5. Работа с коллекциями
- 170 Обзор коллекций
- 171 Три последних изменения
- 172 Интерфейсы коллекций
- 181 Классы коллекций
- 181 Класс ArrayList
- 182 Класс LinkedList
- 183 Класс HashSet
- 183 Класс LinkedHashSet
- 184 Класс TreeSet
- 184 Класс PriorityQueue
- 185 Класс ArrayDeque
- 186 Класс EnumSet
- 186 Обзор карт
- 186 Интерфейсы карт
- 191 Классы карт
- 193 Алгоритмы
- 193 Базовые приемы работы с коллекциями
- 194 Необходимые шаги
- 194 Обсуждение
- 195 Пример
- 197 Варианты и альтернативы
- 198 Работа со списками
- 198 Необходимые шаги
- 198 Обсуждение
- 199 Пример
- 201 Варианты и альтернативы
- 201 Работа с наборами
- 202 Необходимые шаги
- 202 Обсуждение
- 203 Пример
- 204 Пример-бонус
- 207 Варианты и альтернативы
- 207 Использование Comparable для хранения объектов в сортированной коллекции
- 207 Необходимые шаги
- 208 Обсуждение
- 208 Пример
- 209 Варианты и альтернативы
- 210 Использование Comparator с коллекцией
- 210 Необходимые шаги
- 210 Обсуждение
- 212 Пример
- 213 Варианты и альтернативы
- 214 Итерация по коллекции
- 214 Необходимые шаги
- 215 Обсуждение
- 216 Пример
- 217 Варианты и альтернативы
- 218 Создание очереди или стека посредством Deque
- 218 Необходимые шаги
- 219 Обсуждение
- 220 Пример
- 221 Варианты и альтернативы
- 222 Реверсирование, циклический сдвиг и перемешивание List
- 222 Необходимые шаги
- 223 Обсуждение
- 223 Пример
- 224 Варианты и альтернативы
- 224 Сортировка и поиск в List
- 225 Необходимые шаги
- 225 Обсуждение
- 226 Пример
- 226 Варианты и альтернативы
- 227 Создание проверяемой коллекции
- 227 Необходимые шаги
- 228 Обсуждение
- 228 Пример
- 230 Варианты и альтернативы
- 231 Создание синхронизированной коллекции
- 231 Необходимые шаги
- 231 Обсуждение
- 232 Пример
- 234 Варианты и альтернативы
- 234 Создание неизменяемой коллекции
- 234 Необходимые шаги
- 235 Обсуждение
- 235 Пример
- 235 Варианты и альтернативы
- 236 Базовые приемы работы с Map
- 237 Необходимые шаги
- 237 Обсуждение
- 238 Пример
- 240 Варианты и альтернативы
- 241 Преобразование списка Properties в HashMap
- 241 Необходимые шаги
- 241 Обсуждение
- 242 Пример
- 243 Варианты и альтернативы
- 170 Обзор коллекций
- 245 Глава 6. Аплеты и сервлеты
- 246 Обзор аплетов
- 246 Класс Applet
- 249 Архитектура аплета
- 249 Жизненный цикл аплета
- 250 Интерфейсы AppletContext, AudioClip и AppletStub
- 250 Обзор сервлетов
- 251 Пакет javax.servlet
- 254 Пакет javax.servlet.http
- 255 Интерфейс HttpServletResponse
- 256 Класс HttpServlet
- 256 Класс Cookie
- 258 Жизненный цикл сервлета
- 258 Использование Tomcat для разработки сервлетов
- 260 Создание скелета аплета на основе AWT
- 260 Необходимые шаги
- 260 Обсуждение
- 260 Пример
- 261 Варианты и альтернативы
- 262 Создание скелета аплета на основе Swing
- 262 Необходимые шаги
- 262 Обсуждение
- 263 Пример
- 264 Варианты и альтернативы
- 265 Создание графического интерфейса пользователя и обработка событий в аплете на основе Swing
- 266 Необходимые шаги
- 266 Обсуждение
- 268 Историческая справка: метод getContentPane()
- 268 Пример
- 270 Пример-бонус
- 272 Варианты и альтернативы
- 273 Рисование непосредственно на поверхности аплета
- 274 Необходимые шаги
- 274 Обсуждение
- 276 Пример
- 278 Варианты и альтернативы
- 279 Передача параметров аплету
- 279 Необходимые шаги
- 279 Обсуждение
- 280 Пример
- 281 Варианты и альтернативы
- 281 Использование интерфейса AppletContext для отображения Web-страницы
- 282 Необходимые шаги
- 282 Обсуждение
- 282 Пример
- 285 Варианты и альтернативы
- 285 Создание простого сервлета с помощью класса GenericServlet
- 285 Необходимые шаги
- 286 Обсуждение
- 286 Пример
- 287 Варианты и альтернативы
- 288 Обработка HTTP-запросов в сервлете
- 288 Необходимые шаги
- 288 Обсуждение
- 289 Пример
- 290 Пример-бонус
- 292 Варианты и альтернативы
- 292 Использование cookie-наборов в сервлете
- 293 Необходимые шаги
- 293 Обсуждение
- 293 Пример
- 295 Варианты и альтернативы
- 246 Обзор аплетов
- 297 Глава 7. Многопоточность
- 298 Основы многопоточности
- 300 Интерфейс Runnable
- 300 Класс Thread
- 302 Создание потока посредством реализации интерфейса Runnable
- 302 Необходимые шаги
- 303 Обсуждение
- 303 Пример
- 305 Варианты и альтернативы
- 307 Создание потока посредством расширения класса Thread
- 307 Необходимые шаги
- 307 Обсуждение
- 308 Пример
- 309 Варианты и альтернативы
- 309 Использование имени и идентификатора потока
- 310 Необходимые шаги
- 310 Обсуждение
- 311 Пример
- 313 Варианты и альтернативы
- 313 Ожидание завершения потока
- 313 Необходимые шаги
- 314 Обсуждение
- 314 Пример
- 315 Варианты и альтернативы
- 316 Синхронизация потоков
- 317 Необходимые шаги
- 317 Обсуждение
- 318 Пример
- 320 Варианты и альтернативы
- 320 Организация взаимодействия между потоками
- 321 Необходимые шаги
- 321 Обсуждение
- 322 Пример
- 324 Варианты и альтернативы
- 325 Приостановка, возобновление и останов выполнения потока
- 326 Необходимые шаги
- 326 Обсуждение
- 327 Пример
- 330 Варианты и альтернативы
- 331 Использование потока демона
- 331 Необходимые шаги
- 331 Обсуждение
- 332 Пример
- 333 Пример-бонус: простой класс Reminder
- 338 Варианты и альтернативы
- 339 Прерывание потока
- 339 Необходимые шаги
- 339 Обсуждение
- 340 Пример
- 342 Варианты и альтернативы
- 343 Установка и получение приоритета потока
- 344 Необходимые шаги
- 344 Обсуждение
- 344 Пример
- 346 Варианты и альтернативы
- 347 Мониторинг состояния потока
- 347 Необходимые шаги
- 347 Обсуждение
- 348 Пример
- 351 Пример-бонус: монитор потока
- 355 Варианты и альтернативы
- 355 Использование группы потоков
- 355 Необходимые шаги
- 356 Обсуждение
- 357 Пример
- 359 Варианты и альтернативы
- 298 Основы многопоточности
- 361 Глава 8. Swing
- 362 Обзор Swing
- 364 Компоненты и контейнеры
- 364 Компоненты
- 365 Контейнеры
- 366 Панели контейнера верхнего уровня
- 366 Обзор диспетчера компоновки
- 368 Обработка событий
- 368 События
- 368 Источники событий
- 369 Слушатели событий
- 369 Создание простого Swing-приложения
- 370 Необходимые шаги
- 370 Обсуждение
- 372 Историческая справка: getContentPane()
- 373 Пример
- 374 Варианты и альтернативы
- 375 Установка диспетчера компоновки панели содержимого
- 375 Необходимые шаги
- 376 Обсуждение
- 376 Пример
- 378 Варианты и альтернативы
- 379 Работа с JLabel
- 379 Необходимые шаги
- 380 Обсуждение
- 382 Пример
- 385 Варианты и альтернативы
- 386 Создание простой нажимаемой кнопки
- 386 Необходимые шаги
- 387 Обсуждение
- 388 Пример
- 389 Варианты и альтернативы
- 392 Использование пиктограмм, HTML-кода и мнемонических кодов в сочетании с JButton
- 393 Необходимые шаги
- 393 Обсуждение
- 395 Пример
- 397 Варианты и альтернативы
- 398 Создание кнопки переключателя
- 398 Необходимые шаги
- 399 Обсуждение
- 400 Пример
- 401 Варианты и альтернативы
- 402 Создание флажков
- 402 Необходимые шаги
- 402 Обсуждение
- 403 Пример
- 405 Варианты и альтернативы
- 406 Создание переключателей
- 407 Необходимые шаги
- 407 Обсуждение
- 408 Пример
- 410 Варианты и альтернативы
- 411 Ввод текста с помощью JTextField
- 412 Необходимые шаги
- 412 Обсуждение
- 414 Пример
- 416 Пример-бонус: вырезание, копирование и вставка
- 419 Варианты и альтернативы
- 420 Работа с JList
- 420 Необходимые шаги
- 420 Обсуждение
- 422 Пример
- 424 Варианты и альтернативы
- 426 Использование линейки прокрутки
- 426 Необходимые шаги
- 427 Обсуждение
- 429 Пример
- 431 Варианты и альтернативы
- 432 Использование JScrollPane для реализации прокрутки
- 432 Необходимые шаги
- 432 Обсуждение
- 433 Пример
- 435 Варианты и альтернативы
- 437 Отображение данных в JTable
- 438 Необходимые шаги
- 439 Обсуждение
- 440 Пример
- 443 Варианты и альтернативы
- 445 Обработка событий JTable
- 446 Необходимые шаги
- 446 Обсуждение
- 449 Пример
- 453 Варианты и альтернативы
- 454 Отображение данных в JTree
- 455 Необходимые шаги
- 456 Обсуждение
- 458 Пример
- 462 Варианты и альтернативы
- 463 Создание главного меню
- 464 Необходимые шаги
- 464 Обсуждение
- 466 Пример
- 468 Варианты и альтернативы
- 471 Глава 9. Попурри
- 472 Доступ к ресурсу посредством HTTP-подключения
- 472 Необходимые шаги
- 473 Обсуждение
- 474 Пример
- 476 Варианты и альтернативы
- 477 Использование семафора
- 478 Необходимые шаги
- 479 Обсуждение
- 479 Пример
- 482 Варианты и альтернативы
- 483 Возврат значения из потока
- 484 Необходимые шаги
- 484 Обсуждение
- 485 Пример
- 487 Варианты и альтернативы
- 488 Использование рефлексии для получения информации о классе во время выполнения
- 488 Необходимые шаги
- 489 Обсуждение
- 490 Пример
- 491 Пример-бонус: утилита рефлексии
- 492 Варианты и альтернативы
- 493 Использование рефлексии для динамического создания объекта и вызова методов
- 493 Необходимые шаги
- 494 Обсуждение
- 495 Пример
- 497 Варианты и альтернативы
- 497 Создание нестандартного класса исключения
- 498 Необходимые шаги
- 498 Обсуждение
- 500 Пример
- 501 Варианты и альтернативы
- 502 Планирование задачи для выполнения в будущем
- 503 Необходимые шаги
- 503 Обсуждение
- 504 Пример
- 506 Варианты и альтернативы
- 472 Доступ к ресурсу посредством HTTP-подключения
- 507 Предметный указатель
Инструкция как скачать книгу Герберт Шилдт: Java. Методики программирования Шилдта в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.