На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

Основы Java

Автор Прохоренок Н.
Название Основы Java
Серия Внесерийные книги
ISBN 978-5-9775-3785-8
Формат 70×100/16, мягкая обложка
Объем 704
Тематика
Оптовая цена
    Вернуться к описанию книги

Полное содержание

Введение 13

Глава 1. Первые шаги

17
1.1. Установка Java SE Development Kit (JDK) 17
1.2. Первая программа 21
1.3. Установка и настройка редактора Eclipse 24
1.4. Структура программы 34
1.5. Комментарии в программе 38
1.6. Вывод данных 43
1.7. Ввод данных 45
1.8. Получение данных из командной строки 47
1.9. Преждевременное завершение выполнения программы 48

Глава 2. Переменные и типы данных

51
2.1. Объявление переменной внутри метода 51
2.2. Именование переменных 52
2.3. Типы данных 53
2.4. Инициализация переменных 54
2.5. Константы 56
2.6. Статические переменные и константы класса 57
2.7. Области видимости переменных 58
2.8. Преобразование и приведение типов 61
2.9. Перечисления 62

Глава 3. Операторы и циклы

65
3.1. Математические операторы 65
3.2. Побитовые операторы 67
3.3. Операторы присваивания 70
3.4. Операторы сравнения 71
3.5. Приоритет выполнения операторов 72
3.6. Оператор ветвления if 73
3.7. Оператор ?: 77
3.8. Оператор выбора switch 78
3.9. Цикл for 81
3.10. Цикл "for each" 83
3.11. Цикл while 83
3.12. Цикл do...while 84
3.13. Оператор continue: переход на следующую итерацию цикла 85
3.14. Оператор break: прерывание цикла 85

Глава 4. Числа

87
4.1. Математические константы 90
4.2. Основные методы для работы с числами 90
4.3. Округление чисел 92
4.4. Тригонометрические методы 92
4.5. Преобразование строки в число 93
4.6. Преобразование числа в строку 95
4.7. Генерация псевдослучайных чисел 97
4.8. Бесконечность и значение NaN 101

Глава 5. Массивы

103
5.1. Объявление и инициализация массива 103
5.2. Определение размера массива 105
5.3. Получение и изменение значения элемента массива 106
5.4. Перебор элементов массива 107
5.5. Многомерные массивы 108
5.6. Поиск минимального и максимального значения 110
5.7. Заполнение массива значениями 111
5.8. Сортировка массива 112
5.9. Проверка наличия значения в массиве 115
5.10. Переворачивание и перемешивание массива 116
5.11. Заполнение массива случайными числами 118
5.12. Копирование элементов из одного массива в другой 119
5.13. Сравнение массивов 122
5.14. Преобразование массива в строку 123

Глава 6. Символы и строки

125
6.1. Объявление и инициализация отдельного символа 125
6.2. Создание строки 126
6.3. Определение длины строки 128
6.4. Доступ к отдельным символам 129
6.5. Получение фрагмента строки 129
6.6. Конкатенация строк 129
6.7. Настройка локали 130
6.8. Изменение регистра символов 131
6.9. Сравнение строк 132
6.10. Поиск и замена в строке 134
6.11. Преобразование строки в массив и обратно 135
6.12. Преобразование кодировок 137
6.13. Форматирование строки 141

Глава 7. Регулярные выражения

147
7.1. Создание шаблона и проверка полного соответствия шаблону 147
7.2. Модификаторы 148
7.3. Синтаксис регулярных выражений 150
7.4. Поиск всех совпадений с шаблоном 160
7.5. Замена в строке 164
7.6. Метод split() 166

Глава 8. Работа с датой и временем (классический способ)

167
8.1. Класс Date 167
8.1.1. Создание экземпляра класса Date 167
8.1.2. Форматирование даты и времени 169
8.2. Класс Calendar 173
8.2.1. Метод getInstance() 173
8.2.2. Получение компонентов даты и времени 173
8.2.3. Установка компонентов даты и времени 177
8.2.4. Сравнение объектов 179
8.3. Класс GregorianCalendar 180
8.3.1. Создание экземпляра класса GregorianCalendar 180
8.3.2. Установка и получение компонентов даты и времени 181
8.3.3. Изменение компонентов даты и времени 184
8.3.4. Сравнение объектов 185
8.4. Класс SimpleDateFormat: форматирование даты и времени 185
8.5. Класс DateFormatSymbols 188
8.6. "Засыпание" программы и измерение времени выполнения 191

Глава 9. Работа с датой и временем в Java SE 8

193
9.1. Класс LocalDate: дата 193
9.1.1. Создание экземпляра класса LocalDate 193
9.1.2. Установка и получение компонентов даты 195
9.1.3. Прибавление и вычитание значений 197
9.1.4. Преобразование объекта класса LocalDate в объект класса LocalDateTime 198
9.1.5. Сравнение объектов 199
9.1.6. Преобразование даты в строку 200
9.1.7. Создание календаря на месяц и год 200
9.2. Класс LocalTime: время 209
9.2.1. Создание экземпляра класса LocalTime 209
9.2.2. Установка и получение компонентов времени 211
9.2.3. Прибавление и вычитание значений 212
9.2.4. Преобразование объекта класса LocalTime в объект класса LocalDateTime 213
9.2.5. Сравнение объектов 213
9.2.6. Преобразование времени в строку 215
9.3. Класс LocalDateTime: дата и время 215
9.3.1. Создание экземпляра класса LocalDateTime 215
9.3.2. Установка и получение компонентов даты и времени 217
9.3.3. Прибавление и вычитание значений 220
9.3.4. Сравнение объектов 222
9.3.5. Преобразование даты и времени в строку 223
9.4. Класс Instant 224
9.4.1. Создание экземпляра класса Instant 224
9.4.2. Получение компонентов времени 226
9.4.3. Прибавление и вычитание значений 226
9.4.4. Сравнение объектов 227
9.4.5. Преобразование объекта класса Instant в объект класса LocalDateTime 228
9.5. Класс DateTimeFormatter: форматирование даты и времени 229
9.5.1. Создание экземпляра класса DateTimeFormatter 229
9.5.2. Специальные символы в строке шаблона 231
9.6. Класс Period: разница между двумя датами 235
9.7. Получение количества дней между двумя датами 239
9.8. Получение времени в разных часовых поясах 239

Глава 10. Пользовательские методы

245
10.1. Создание статического метода 245
10.2. Вызов статического метода 248
10.3. Перегрузка методов 249
10.4. Способы передачи параметров в метод 251
10.5. Передача и возвращение массивов 253
10.6. Передача произвольного количества значений 255
10.7. Рекурсия 256

Глава 11. Объектно-ориентированное программирование

259
11.1. Основные понятия 259
11.2. Создание класса и экземпляра класса 261
11.3. Объявление полей внутри класса 263
11.4. Определение методов внутри класса 265
11.5. Конструкторы класса 266
11.6. Явная инициализация полей класса 268
11.7. Инициализационные блоки 268
11.8. Вызов одного конструктора из другого 270
11.9. Создание констант класса 271
11.10. Статические члены класса 273
11.11. Методы-фабрики 274
11.12. Наследование 275
11.13. Переопределение методов базового класса 277
11.14. Финальные классы и методы 279
11.15. Абстрактные классы и методы 279
11.16. Вложенные классы 280
11.16.1. Обычные вложенные классы 280
11.16.2. Статические вложенные классы 282
11.16.3. Локальные вложенные классы 282
11.16.4. Анонимные вложенные классы 283
11.17. Приведение типов 285
11.18. Класс Object 286
11.19. Массивы объектов 290
11.20. Передача объектов в метод и возврат объектов 291
11.21. Классы-"обертки" над элементарными типами 294

Глава 12. Интерфейсы

297
12.1. Создание интерфейса 298
12.2. Реализация нескольких интерфейсов 303
12.3. Расширение интерфейсов 304
12.4. Создание статических констант внутри интерфейса 304
12.5. Создание статических методов внутри интерфейса 305
12.6. Методы по умолчанию внутри интерфейса 306
12.7. Интерфейсы и обратный вызов 308
12.8. Функциональные интерфейсы и лямбда-выражения 310
12.9. Область видимости лямбда-выражений 315
12.10. Ссылки на методы 317
12.11. Интерфейс Comparable 320
12.12. Интерфейс Cloneable 322

Глава 13. Обобщенные типы

325
13.1. Зачем нужны обобщенные типы 326
13.2. Обобщенные классы 328
13.3. Ограничение обобщенного типа 330
13.4. Обобщенные методы 332
13.5. Маски типов 334
13.6. Наследование обобщенных классов 336
13.7. Обобщенные интерфейсы 339
13.8. Ограничения на использование обобщенных типов 341

Глава 14. Коллекции. Списки и очереди

345
14.1. Интерфейс Collection<E> 345
14.2. Интерфейсы Iterable<T> и Iterator<T> 346
14.3. Интерфейсы Comparable<T> и Comparator<T> 349
14.4. Интерфейс List<E> 352
14.5. Класс ArrayList<E>: динамический список 353
14.5.1. Создание объекта 353
14.5.2. Вставка элементов 355
14.5.3. Определение количества элементов 357
14.5.4. Удаление элементов 357
14.5.5. Доступ к элементам 359
14.5.6. Поиск и замена элементов в списке 361
14.5.7. Поиск минимального и максимального значения в списке 364
14.5.8. Преобразование массива в список и списка в массив 365
14.5.9. Перемешивание и переворачивание списка 368
14.5.10. Сортировка элементов списка 369
14.5.11. Перебор элементов списка 371
14.5.12. Интерфейс ListIterator<E> 372
14.6. Интерфейсы Queue<E> и Deque<E> 375
14.7. Класс ArrayDeque<E>: двухсторонняя очередь 376
14.7.1. Создание объекта 376
14.7.2. Вставка элементов 376
14.7.3. Определение количества элементов 378
14.7.4. Удаление элементов 379
14.7.5. Получение элементов из очереди 381
14.7.6. Проверка существования элементов в очереди 384
14.7.7. Поиск минимального и максимального значения в очереди 385
14.7.8. Преобразование массива в очередь и очереди в массив 387
14.7.9. Перебор элементов очереди 388
14.8. Класс PriorityQueue<E>: очередь с приоритетами 389
14.9. Класс LinkedList<E>: связанный список и очередь 392
14.10. Класс Vector<E>: синхронизированный динамический список 396
14.10.1. Создание объекта 396
14.10.2. Методы класса Vector<E> 397
14.10.3. Интерфейс Enumeration<E> 400
14.11. Класс Stack<E>: стек 402
14.12. Класс BitSet: набор битов 404

Глава 15. Коллекции. Множества и словари

409
15.1. Интерфейс Set<E> 409
15.2. Класс HashSet<E>: множество 410
15.2.1. Создание объекта 411
15.2.2. Вставка элементов 411
15.2.3. Определение количества элементов 412
15.2.4. Удаление элементов 413
15.2.5. Проверка существования элементов 414
15.2.6. Преобразование массива во множество и множества в массив 415
15.2.7. Перебор элементов множества 416
15.3. Класс LinkedHashSet<E> 417
15.4. Интерфейсы SortedSet<E> и NavigableSet<E> 418
15.5. Класс TreeSet<E> 418
15.5.1. Создание объекта 419
15.5.2. Методы из интерфейса SortedSet<E> 420
15.5.3. Методы из интерфейса NavigableSet<E> 421
15.6. Интерфейс Map<K, V> 425
15.7. Класс HashMap<K, V>: словарь 426
15.7.1. Создание объекта 426
15.7.2. Вставка элементов 427
15.7.3. Определение количества элементов 428
15.7.4. Удаление элементов 428
15.7.5. Доступ к элементам 429
15.7.6. Изменение значений элементов 430
15.7.7. Проверка существования элементов 432
15.7.8. Перебор элементов словаря 432
15.8. Класс LinkedHashMap<K, V> 433
15.9. Интерфейсы SortedMap<K, V> и NavigableMap<K, V> 435
15.10. Класс TreeMap<K, V> 435
15.10.1. Создание объекта 436
15.10.2. Методы из интерфейса SortedMap<K, V> 437
15.10.3. Методы из интерфейса NavigableMap<K, V> 439
15.11. Класс Hashtable<K, V> 445
15.12. Класс Properties 446

Глава 16. Пакеты и JAR-архивы

453
16.1. Инструкция import 453
16.2. Импорт статических членов класса 455
16.3. Инструкция package 455
16.4. Пути поиска классов 458
16.5. JAR-архивы 463
16.5.1. Создание JAR-архива 463
16.5.2. Исполняемые JAR-архивы 464
16.5.3. Редактирование JAR-архивов 466
16.5.4. Создание JAR-архива в редакторе Eclipse 467

Глава 17. Обработка ошибок

471
17.1. Типы ошибок 471
17.2. Инструкция try...catch...finally 473
17.3. Оператор throw: генерация исключений 479
17.4. Иерархия классов исключений 479
17.5. Типы исключений 483
17.6. Пользовательские классы исключений 483
17.7. Способы поиска ошибок в программе 484
17.8. Протоколирование 487
17.9. Инструкция assert 489
17.10. Отладка программы в редакторе Eclipse 490

Глава 18. Работа с файлами и каталогами

497
18.1. Класс File 498
18.1.1. Создание объекта 498
18.1.2. Преобразование пути к файлу или каталогу 499
18.1.3. Работа с дисками 504
18.1.4. Работа с каталогами 505
18.1.5. Работа с файлами 508
18.1.6. Права доступа к файлам и каталогам 510
18.2. Класс Files 512
18.2.1. Класс Paths и интерфейс Path 512
18.2.2. Работа с дисками 518
18.2.3. Работа с каталогами 520
18.2.4. Обход дерева каталогов 524
18.2.5. Работа с файлами 528
18.2.6. Права доступа к файлам и каталогам 532
18.2.7. Атрибуты файлов и каталогов 532
18.2.8. Копирование и перемещение файлов и каталогов 536
18.2.9. Чтение и запись файлов 537
18.3. Получение сведений об операционной системе 541

Глава 19. Байтовые потоки ввода/вывода

545
19.1. Базовые классы байтовых потоков ввода/вывода 545
19.1.1. Класс OutputStream 546
19.1.2. Класс FileOutputStream 547
19.1.3. Класс InputStream 549
19.1.4. Класс FileInputStream 552
19.2. Интерфейс AutoCloseable и инструкция try-with-resources 554
19.3. Буферизованные байтовые потоки 555
19.3.1. Класс BufferedOutputStream 555
19.3.2. Класс BufferedInputStream 556
19.4. Класс PushbackInputStream 557
19.5. Запись и чтение двоичных данных 558
19.5.1. Класс DataOutputStream 558
19.5.2. Интерфейс DataOutput 559
19.5.3. Класс DataInputStream 560
19.5.4. Интерфейс DataInput 561
19.6. Сериализация объектов 562
19.6.1. Класс ObjectOutputStream 563
19.6.2. Интерфейс ObjectOutput 563
19.6.3. Класс ObjectInputStream 564
19.6.4. Интерфейс ObjectInput 564
19.7. Файлы с произвольным доступом 565

Глава 20. Символьные потоки ввода/вывода

569
20.1. Базовые классы символьных потоков ввода/вывода 569
20.1.1. Класс Writer 569
20.1.2. Класс OutputStreamWriter 571
20.1.3. Класс Reader 572
20.1.4. Класс InputStreamReader 576
20.2. Буферизованные символьные потоки ввода/вывода 577
20.2.1. Класс BufferedWriter 577
20.2.2. Класс BufferedReader 579
20.3. Класс PushbackReader 581
20.4. Классы PrintWriter и PrintStream 582
20.4.1. Класс PrintWriter 582
20.4.2. Класс PrintStream 586
20.4.3. Перенаправление стандартных потоков вывода 587
20.5. Класс Scanner 588
20.6. Класс Console 595

Глава 21. Работа с потоками данных: Stream API

599
21.1. Создание потока данных 599
21.1.1. Создание потока из коллекции 599
21.1.2. Создание потока из массива или списка значений 601
21.1.3. Создание потока из строки 602
21.1.4. Создание потока из файла или каталога 603
21.1.5. Создание потока с помощью итератора или генератора 605
21.1.6. Создание потока случайных чисел 606
21.1.7. Создание пустого потока 607
21.2. Промежуточные операции 607
21.2.1. Основные методы 607
21.2.2. Преобразование типа потока 610
21.2.3. Объединение и добавление потоков 612
21.3. Терминальные операции 613
21.3.1. Основные методы 614
21.3.2. Класс Optional<T> 618
21.3.3. Преобразование потока в коллекцию, массив или в другой объект 620

Глава 22. Получение данных из сети Интернет

623
22.1. Класс URI 626
22.2. Класс URL 630
22.2.1. Разбор URL-адреса 631
22.2.2. Кодирование и декодирование строки запроса 633
22.2.3. Получение данных из сети Интернет 633
22.3. Классы URLConnection и HttpURLConnection 634
22.3.1. Установка тайм-аута 635
22.3.2. Получение заголовков ответа сервера 636
22.3.3. Отправка заголовков запроса 638
22.3.4. Отправка запроса методом GET 639
22.3.5. Отправка запроса методом POST 640
22.3.6. Отправка файла методом POST 642
22.3.7. Обработка перенаправлений 645
22.3.8. Обработка кодов ошибок 645

Глава 23. Работа с базой данных MySQL

647
23.1. Установка JDBC-драйвера 647
23.2. Регистрация драйвера и подключение к базе данных 649
23.3. Создание базы данных 650
23.4. Создание таблицы 651
23.5. Добавление записей 652
23.6. Обновление и удаление записей 655
23.7. Получение записей 655
23.8. Метод execute() 657
23.9. Получение информации о структуре набора ResultSet 658
23.10. Транзакции 660
23.11. Получение информации об ошибках 661

Глава 24. Многопоточные приложения

663
24.1. Создание и прерывание потока 663
24.2. Потоки-демоны 667
24.3. Состояния потоков 667
24.4. Приоритеты потоков 668
24.5. Метод join() 668
24.6. Синхронизация 669
24.6.1. Ключевое слово volatile 670
24.6.2. Ключевое слово synchronized 670
24.6.3. Синхронизированные блоки 671
24.6.4. Методы wait(), notify() и notifyAll() 671
24.7. Пакет java.util.concurrent.locks 674
24.7.1. Интерфейс Lock 674
24.7.2. Интерфейс Condition 675
24.8. Пакет java.util.concurrent 676
24.8.1. Интерфейс BlockingQueue<E>: блокирующая односторонняя очередь 677
24.8.2. Интерфейс BlockingDeque<E>: блокирующая двухсторонняя очередь 680
24.8.3. Класс PriorityBlockingQueue<E>: блокирующая очередь с приоритетами 682
24.8.4. Интерфейсы Callable<V> и Future<V> 683
24.8.5. Пулы потоков 685
24.9. Синхронизация коллекций 687
   
Заключение 689
Приложение. Описание электронного архива 691
Предметный указатель 693


На главную | Где купить | Авторам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты
© 2001–2017 Издательство «БХВ-Петербург».
Все права защищены. Частичное или полное копирование текстов, слоганов и фотоизображений без письменного согласия Правообладателя запрещено.