Опубликовано

Программируем на Java: практический подход к созданию надежных и эффективных приложений

Программируем на Java: практический подход к созданию надежных и эффективных приложений

Книга о современном программировании на 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

Добавить комментарий