
Книга о современном программировании на Java, охватывающая новые возможности Java 21 и практическое применение языка для создания многофункциональных приложений. Подробно рассматриваются ключевые концепции, структуры данных, работа с реляционными базами данных PostgreSQL и Apache Cassandra®, а также использование фреймворков Spring Boot и Spring Data. Отдельное внимание уделено разработке графики, анимации и даже небольших аркадных игр на Java. Рассматриваются лучшие практики построения программной архитектуры, создания графических интерфейсов и веб-приложений с помощью Vaadin.
Для программистов
Практическое руководство по программированию на Java 21
Эта книга — практическое руководство по одному из самых распространенных в мире языков программирования Java 21. Она поможет читателям расширить свои знания об общих конструкциях Java, структурах данных и инженерных подходах. Автор рассказывает об использовании популярных Java-фреймворков, таких как Spring и Vaadin, для создания мощных, многофункциональных приложений. Также описана технология разработки приложений, управляемых СУБД корпоративного уровня, таких как PostgreSQL и Apache Cassandra®. Автор показывает, как использовать Java для анимации и создать простую аркадную игру.
- Освойте фундаментальные структуры программирования на Java
- Изучите возможности Java 21
- Создавайте Java-приложения с использованием СУБД PostgreSQL и Apache Cassandra®
- Узнайте, как создавать графику и простую анимацию с помощью Java
- Используйте такие фреймворки, как Spring Boot и Spring Data
- Разрабатывайте полнофункциональные графические интерфейсы с помощью Vaadin

Плоетц Аарон (Ploetz Aaron) — занимает должность developer advocate в компании DataStax. С 1997 года профессионально занимается разработкой программного обеспечения и имеет успешный опыт руководства командами администраторов баз данных и DevOps как в стартапах, так и в компаниях из списка Fortune 500.
Книгу “Программируем на Java: практический подход к созданию надежных и эффективных приложений” можно купить в нашем интенет-магазине.
Об авторе. 14
О рецензенте. 15
Благодарности. 16
Предисловие. 17
Пакет кодов и цветные изображения. 19
Глава 1. Знакомство с Java. 21
Введение. 21
Структура. 21
Цели 21
Почему стоит программировать на Java?. 22
Настройка среды.. 22
Операционная система. 23
Java Runtime Environment 23
Java Development Kit 23
Поставщики и редакции JDK.. 23
Установка. 24
Windows. 24
MacOS. 25
Linux. 25
Управление версиями. 25
Интегрированная среда разработки. 26
Управление зависимостями в Java. 26
Система контроля версий. 26
Установка Git 27
Объектно-ориентированное программирование. 27
Инкапсуляция. 28
Наследование. 29
Абстракция. 30
Полиморфизм.. 32
Статический полиморфизм.. 32
Динамический полиморфизм.. 33
Преимущества ООП.. 34
Что нового в Java 21?. 34
Виртуальные потоки. 34
Упорядоченные коллекции. 35
Строковые шаблоны.. 36
Заключение. 37
Важно помнить. 37
Глава 2. Фундаментальные структуры программирования. 39
Введение. 39
Структура. 39
Цели 40
Начало работы.. 40
Maven. 40
HelloWorld. 40
Анонимные классы main. 42
Переменные и форматирование. 43
Чтение входных данных. 46
Обработка ошибок. 47
Операторы if 49
Операторы switch/case. 50
Циклы.. 52
Циклы for. 52
Циклы while. 53
Циклы do. 54
Файлы.. 55
Запись в файл. 55
Чтение из файла. 58
Чтение данных строки из файла. 59
Методы и конструкторы.. 62
Пример программы MetricUnitConverter. 62
Класс InvalidUOMException. 63
MeasurementValue POJO.. 63
Заключение. 72
Важно помнить. 73
Глава 3. Строки, символы и регулярные выражения. 75
Введение. 75
Структура. 75
Цели 75
Символы.. 75
ASCII-арт. 79
Строки. 81
indexOf 82
substring. 82
toUpperCase. 83
toLowerCase. 83
Сравнение строк. 84
Сравнение строковых суффиксов. 85
Сравнение префиксов строк. 87
contains. 87
Регулярные выражения. 88
Заключение. 92
Важно помнить. 92
Глава 4. Массивы, коллекции и записи. 93
Введение. 93
Структура. 93
Цели 93
Массивы.. 94
Многомерные массивы.. 96
Коллекции и словари. 100
Множества. 101
HashSet 102
LinkedHashSet 103
TreeSet 103
Списки. 103
ArrayList 104
LinkedList 106
Словари. 108
HashMap. 110
LinkedHashMap. 111
TreeMap. 112
Упорядоченные коллекции. 113
Записи. 114
Построение простого примера. 115
Класс RPGSimulation. 116
Класс Player. 118
Класс Hero. 120
Продолжение работы с классом RPGSimulation. 121
Заключение. 125
Важно помнить. 125
Глава 5. Арифметические операции. 127
Введение. 127
Структура. 127
Цели 127
Целочисленная арифметика. 128
Сложение. 128
Тестирование add( ) с помощью JUnit 130
Вычитание. 133
Умножение. 134
Деление. 134
Модуль. 135
Возведение в степень. 136
Арифметика чисел с плавающей точкой. 137
Сложение. 137
Особенности работы с арифметикой чисел с плавающей точкой. 138
Вычитание. 141
Умножение. 142
Деление. 142
Форматирование значений с плавающей точкой. 142
Возведение в степень. 144
Квадратный корень. 145
Кубический корень. 145
Модуль числа. 146
Заключение. 146
Важно помнить. 147
Глава 6. Общие структуры данных. 149
Введение. 149
Структура. 149
Цели 149
Стеки. 150
Очереди. 157
Связные списки. 161
Двоичные деревья. 168
Заключение. 173
Важно помнить. 173
Глава 7. Работа с базами данных. 175
Введение. 175
Структура. 175
Цели 175
Введение в базы данных. 176
Краткая история баз данных. 176
Теорема CAP. 178
Согласованность. 178
Доступность. 178
Устойчивость к разделениям.. 178
Обозначения CAP. 179
PostgreSQL. 180
ElephantSQL. 180
Схема. 182
Нормализация. 185
Загрузка данных. 186
Запрос данных. 187
Доступ из Java. 189
Класс PostgresConn. 189
Класс AstronautPostgresDAL. 191
Класс GeminiAstronautsRDBMS. 193
Пересмотр класса AstronautPostgresDAL. 196
Пересмотр класса GeminiAstronautsRDBMS. 198
Apache Cassandra. 199
Astra DB.. 200
Схема. 203
Денормализация. 206
Загрузка данных. 206
Запрос данных. 207
Доступ из Java. 209
pom.xml 209
Класс CassandraConn. 210
Класс AstronautCassandraDAL. 211
Класс GeminiAstronautsNoSQL. 213
Пересмотр класса AstronautCassandraDAL. 217
Пересмотр класса GeminiAstronautsNoSQL. 217
Выбор подходящей базы данных. 219
Заключение. 219
Важно помнить. 220
Глава 8. Веб-приложения. 221
Введение. 221
Структура. 221
Цели 221
Операции Restful 222
URI Restful 223
Простые операции. 223
Веб-сервисы с помощью Spring Boot 226
MVC.. 230
Контроллер погодного приложения. 230
Конечная точка сервиса Hello World. 231
Модель погодного приложения. 233
Определение нового пространства ключей. 233
Определение новой таблицы.. 234
Генерация нового маркера. 235
Установка свойств приложения и переменных окружения. 236
Изменение pom.xml 237
Класс WeatherPrimaryKey. 237
Класс WeatherEntity. 239
Класс WeatherReading. 240
Интерфейс WeatherAppRepository. 241
Построение JSON-объектов ответа. 242
Класс Measurement 242
Класс CloudLayer. 242
Класс Properties. 243
Класс Geometry. 244
Класс LatestWeather. 244
Пересмотр контроллера погодного приложения. 245
Создание пользовательских веб-интерфейсов. 250
Пересмотр pom.xml 250
Вид погодного приложения. 251
Заключение. 258
Важно помнить. 259
Глава 9. Графика в Java. 261
Введение. 261
Структура. 261
Цели 261
Простая графика с помощью AWT и Swing. 262
Класс SimpleDraw.. 262
Класс MyPanel 262
Анимация. 268
Класс Planet 268
Класс SolarSystem.. 270
Класс DrawPlanets. 273
Java Breakout 275
pom.xml 275
Класс Ball 276
Класс Brick. 278
Класс Paddle. 279
Класс KeyHandler. 280
Класс BreakoutPanel 282
Класс BreakoutGame. 291
Заключение. 293
Важно помнить. 293
Глава 10. Завершающий Java-проект. 295
Введение. 295
Структура. 295
Цели 295
Знакомство с приложением для работы с фильмами. 296
Архитектура. 296
База данных. 296
Выбор базы данных. 297
Создание новой векторной базы данных. 297
Проектирование таблиц. 298
Загрузчик данных. 300
pom.xml 301
Класс CassandraConnection. 301
Класс AstraConnection. 303
Класс Movie. 304
Класс MovieDataLoader. 305
Запрос данных. 313
Создание проекта киноприложения. 315
Каталог изображений. 316
pom.xml 316
application.yml 317
Модель. 318
Класс Movie. 318
Интерфейс MovieRepository. 319
Класс MovieByTitle. 320
Интерфейс MovieByTitleRepository. 321
Контроллер. 321
Класс MovieAppController. 321
Запрос к сервису. 324
Фильмы по ID.. 324
Фильмы по названию.. 324
Рекомендации фильмов. 325
Представление. 325
Класс MovieAppMainView.. 325
Заключение. 340
Важно помнить. 341
Приложения. 343
Приложение 1. Ссылки. 345
Приложение 2. Таблица преобразования UTF. 347
Приложение 3. Справочник команд баз данных. 356
SELECT. 356
INSERT. 357
UPDATE. 357
DELETE. 357
CREATE TABLE. 358
CREATE INDEX. 358
Приложение 4. Общие коды ответов HTTP. 359
Приложение 5. Основные цветовые коды.. 360
Приложение 6. Сбор мусора. 361
Предметный указатель. 363
