Перейти к основному содержимому

О разделе

Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.

Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.

Раздел охватывает язык Java, JVM, сборки (Maven/Gradle), фреймворки и работу с данными. Материалы рассчитаны на разработчиков и архитекторов: от первой программы до Spring, тестирования и облачного развёртывания. JDBC batch, Hibernate batch_size, keyset-выборка — Пакетная работа с данными, Hibernate batch.

Java — не "только банки" — это JVM-экосистема (серверы, Android-наследие, инструменты). В новых backend-проектах чаще Spring Boot, а не JSF — legacy-главы в разделе помечены как справочные.

Общие принципы (код, ООП, алгоритмы) — в Код и разработка и ООП; здесь — особенности Java и платформы.

В ключевых главах (JVM, коллекции, исключения) концепции по возможности даются сначала на псевдокоде, затем — на Java.


С чего начать (основной маршрут)

  1. Основы языка Java — JDK/JVM, байт-код, путь от исходника до запуска, состав дистрибутива. 1a. IntelliJ IDEA — установка, интерфейс, возможности IDE (рекомендуется перед первой программой).
  2. Первая программа — Maven; в статье два пути: IntelliJ IDEA (рекомендуется) и NetBeans. 2a. public static void main — точка входа — когда JVM вызывает main. 2b. Ввод и вывод в Java — консоль — println, переменные, арифметика, Scanner (лестница из трёх программ).
  3. Структура и сборки — Maven/Gradle, запуск вне IDE; отладка в IDEA.
  4. Синтаксис, типы (примитивы и обёртки), операторы и циклы, конструкции — пакеты, методы; случайные числа.
  5. ООП — классы, наследование, интерфейсы, instanceof.
  6. Теория: ошибки и исключенияисключения в Java, иерархия.
  7. Ввод-вывод и файлы, асинхронность, Virtual Threads (Java 21+), JVM и потоки.
  8. Аннотации и рефлексия, современный синтаксис — record, sealed, pattern matching.
  9. Вопросы на собеседование — Core Java — карта тем → главы раздела.
  10. Веб и данные: Spring Framework (обзор) → Spring Bootпрактикум "Simple CRM"аннотации Spring BootSecurity BasicJWTбезопасность в prodошибки RESTJPATestcontainersработа с БД. СУБД из кода — PostgreSQL, MySQL, SQLite, SQL Server.
  11. JVM в проде: JVM и потокифлаги запуска в справочнике, §24jcmd, heap dump, JFR.
Когда Spring, а когда ещё Core

Пока не уверены в List, Stream, исключениях и main — не уходите в Первая программа на Spring Framework. Spring опирается на те же классы, пакеты и Maven, что и консольная программа.


Ветки по цели

ЦельМаршрут
Корпоративный RESTПервая программа на Spring Frameworkпрактикум "Simple CRM"Spring Security — практический стартJWT и OAuth2 Resource Server в Spring BootSpring Boot — безопасность в продакшенеОшибки REST — @Valid и @ControllerAdviceHibernate и JPA — практический стартTestcontainers — интеграционные тесты с реальной БД
Понять JVM в продеJVM, память и потокисправочник §24JVM в проде — jcmd, дамп памяти и JFRРекомендации по разработке на Java
Сборка и CIСтруктура и сборки Java-проектовGradle — практический старт (Gradle)
Legacy (поддержка)JSF — теорияпервая программапрактикум "Список задач", JavaBeans — не для зелёного поля
Десктоп (JavaFX / Swing)JavaFX и GUIПервая программа на JavaFX (JavaFX) или Lab — Swing (без Maven) → практикум "XML-валидатор" (Swing + Maven) → Справочник по JavaFX и Swing — элементы UI; теория — Архитектура десктопа, Особенности разработки десктопных приложений
Консольные задачиВвод и вывод в Java (ввод-вывод) → Lab — консольные задачиПростые приложения на Java (мини-приложения)
Лабораторная с GUILab — Swing, построчный разбор после Основные конструкции языка Java и Операторы и циклы в Java
Учебная играJava Survivors (в подготовке) — маршрут раздела Практикум разработки игр

Параллельно с Java на JVM — Kotlin (Android/Ktor), Groovy (Gradle DSL, Spock).


Сравнение с Kotlin

На одной JVM — Сравнение Java и Kotlin. В статье — синтаксис, null-safety, корутины и виртуальные потоки, экосистема, плюсы и минусы, выбор стека (2026). Смешанный проект — совместимость Kotlin и Java.


Сравнение с C#

Приходите с C# / .NET или выбираете между стеками — Сравнение C# и Java: JVM и CLR, синтаксис, virtual threads и async/await, Spring и ASP.NET Core, Big Data, производительность и рынок (2026).


Справочник и углубление


Внешние источники

Компактные конспекты — для второго прохода; эталон — OpenJDK и документация Oracle.

ИсточникНазначение
Oracle Java SE DocumentationСпецификация языка и API
dev.java — Language BasicsОфициальный фундамент синтаксиса и моделей кода
dev.java — Collections FrameworkИнтерфейсы и реализации коллекций
dev.java — StreamsПотоки, terminal/intermediate операции
dev.java — Stream GatherersКастомные stateful-пайплайны в Stream API
dev.java — Virtual ThreadsСовременная конкурентность Java 21+
Metanit: JavaПошаговый курс на русском
Ravesli — уроки JavaПошаговый курс на русском: введение, JDK, синтаксис, ООП
Java — конспект (GitBook)Краткий Core Java
proglang.su/javaУглубление по коллекциям и API
Microsoft для JavaOpenJDK, VS Code — Документация и инструменты Java (Microsoft)

Примеры ориентированы на Java 17+ (LTS). Упоминания Date, Vector, Hashtable — в контексте legacy и собеседований.


Зачем этот раздел

Дать один понятный путь по Java на JVM: от JDK и IDE до Spring и JVM-диагностики, без обязательного JSF и без смешивания языков на старте.


С чего начать

ШагМатериалЗачем
1IntelliJ IDEA · Первая программаIDE, затем JDK, Maven, Hello World
2ОтладкаТочки останова, Variables, Call Stack
3Spring BootREST после Core
4Spring Security · prodЗащита API и чеклист выкладки
5JVM · флаги §24 · диагностикаПамять, GC, -Xmx, jcmd

Частые ошибки при старте

ОшибкаЧто делать
Прыжки между языкамиЗакройте одну "первую программу", потом Kotlin/Groovy
Код без запускаmvn compile exec:java или Run в IDE
Spring до коллекцийСначала шаги 4–6 основного маршрута
Путать JDK и JREДля разработки нужен JDKОсновы языка Java

Что попробовать

  1. Первая программа на Java — оба варианта IDE или тот, что у вас в команде.
  2. Отладка Java-кода в IDE — найти off-by-one в цикле через F8.
  3. Первая программа на Spring Frameworkcurl localhost:8080/... к своему API.
curl localhost:8080/...
  1. чек-лист в конце раздела.


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

База программистаPython — о разделе, Документация и инструменты Java (Microsoft), JavaScript — о разделе, Low-code и No-code платформы, Автоматическое управление памятью, Разработка и отладка — о разделе.

Бэкенд и серверная разработкаPython — о разделе, Платформа .NET — о разделе, JavaScript — о разделе, C# — о разделе, SQL — о разделе, C++ — о разделе.