Открытые уроки · Java 21
Современная Java: читайте, пробуйте, проверяйте себя
Одиннадцать коротких уроков о том, как пишут на Java сегодня: без лишних церемоний, с записями, сопоставлением с образцом, потоками данных и виртуальными потоками. Каждый урок можно пройти за вечер, имея только установленный JDK 21.
Уроки по порядку
Порядок подобран так, чтобы каждый следующий урок опирался на предыдущие. Уровень «старт» не требует опыта в Java, «базовый» предполагает знакомство с классами и коллекциями, «уверенный» — привычку читать документацию.
-
JShell: пробуем Java без проекта и сборки
Запускаем интерактивную оболочку из состава JDK, вычисляем выражения, объявляем переменные и методы и учимся быстро проверять идеи, не создавая проект.
-
var: выведение типов без потери ясности
Где локальное выведение типов делает код чище, где вредит читаемости и какие простые правила помогают не спорить об этом в команде.
-
Текстовые блоки и современные методы строк
Многострочные литералы без экранирования, formatted(), strip(), lines(), repeat() и приёмы, которые заменяют громоздкую конкатенацию.
-
Records: неизменяемые данные без шаблонного кода
Объявляем запись одной строкой, получаем конструктор, equals и toString бесплатно и добавляем проверки в компактном конструкторе.
-
Switch-выражения и сопоставление с образцом
Switch как выражение, стрелочные ветки, проверка типов через instanceof-паттерны, деконструкция записей и охранные условия when.
-
Sealed-интерфейсы: закрытые наборы вариантов
Ограничиваем множество реализаций, получаем исчерпывающий switch без default и моделируем результат операции без исключений.
-
Stream API: от цикла к конвейеру данных
Фильтруем, преобразуем и группируем коллекции конвейерами, разбираем Collectors, ленивость и типичные ошибки новичков.
-
Optional: честная работа с отсутствующим значением
Когда возвращать Optional, как раскрывать его без get() и почему он не подходит для полей и параметров.
-
java.time: даты, периоды и форматирование
LocalDate, LocalDateTime и ZonedDateTime, разница между Period и Duration, безопасный разбор и вывод дат по образцу.
-
Файлы и HTTP-клиент: читаем, пишем, запрашиваем
Files.readString и writeString, обход каталога, HttpClient из стандартной библиотеки и разбор ответа без внешних зависимостей.
-
Виртуальные потоки: тысячи задач без страха
Что изменилось в Java 21, как запускать задачи через newVirtualThreadPerTaskExecutor и где виртуальные потоки не помогут.
Как заниматься
Уроки рассчитаны на чтение с открытым терминалом: каждый пример стоит набрать руками и запустить.
-
Установите JDK 21
Подойдёт любая сборка OpenJDK с долгосрочной поддержкой. Проверьте установку командой
java -version. -
Пробуйте в JShell или в одном файле
Короткие примеры удобно вводить в JShell, программы длиннее двадцати строк — сохранять в файл и запускать командой
java Имя.java. -
Делайте задание в конце урока
Задание проверяет ровно то, что разобрано. Если оно не получается, вернитесь к примеру и измените в нём одну деталь.
Что открыто, а что в учебном кабинете
Всё, что читается и проверяется самостоятельно, остаётся на сайте и бесплатно. В закрытый кабинет уходит только то, на что нужно время человека, — разбор присланных решений.
-
Открыто на сайте
Все одиннадцать уроков целиком: объяснения, примеры и задания в конце. Уровни «старт», «базовый» и «уверенный» доступны одинаково, вход и регистрация не нужны. Ничего из уже опубликованного не закрывается.
-
В учебном кабинете
Разбор ваших решений по заданиям из уроков и ответ на вопрос по конкретному коду. Вход по коду приглашения на lms.school-fortuna.ru; доступ бесплатный, оплата не взимается.
-
Чего нет ни там, ни там
Обучение по образовательной программе не ведётся, документы об образовании не выдаются, набор и оплата не проводятся. Закрытый доступ в кабинет этого не меняет.