0Pricing
Java Academy icon

Java Academy

JAVABackendWebMobileEnterpriseBeginnerCloudDatabaseAndroidDesktopNetwork

Овладейте программированием на Java и разрабатывайте мощные приложения с Java Academy.

🤖 На основе AI📚 104 курсов👥 100 000+ учеников⭐ Рейтинг 4,9
Обзор курса

Java: От первого класса к production-grade системам

Java на протяжении почти трёх десятилетий была основой корпоративного ПО, разработки для Android и крупномасштабных backend-систем. Она работает на JVM, поставляется с богатой стандартной библиотекой и питает всё — от платформ финансовой торговли до облачных микросервисов. Этот курс строит подлинную компетентность в Java — начиная с переменных и управляющих структур и заканчивая внутренним устройством JVM, виртуальными потоками и native-компиляцией через GraalVM.

Что вы научитесь делать

Вы пройдёте от базового синтаксиса — переменных, типов данных, циклов и методов — через объектно-ориентированное проектирование с классами, наследованием, полиморфизмом, sealed классами и records. На промежуточных этапах охватываются весь фреймворк Collections, API java.time и NIO.2, lambda-выражения, функциональные интерфейсы и Streams API, включая collectors, spliterators и primitive streams. Более поздние курсы рассматривают конфигурацию Spring Boot и dependency injection, Spring Data JPA, валидацию REST API, интеграционное тестирование JUnit 5 и security на основе JWT. На продвинутом уровне курса охватываются ExecutorService, locks, atomic variables, CompletableFuture, structured concurrency, виртуальные потоки через Project Loom, загрузка классов JVM и bytecode, компиляция native image с GraalVM и профилирование производительности с JMH.

Образовательный путь

Более 120 курсов охватывают уровни A1 через C2. Курсы A1 и A2 устанавливают основы: систему типов, casting, autoboxing, wrapper-классы, массивы, условные операторы и методы. B1 охватывает объектно-ориентированную Java в глубину — enums, inner classes, iterators, comparators, внутреннее устройство HashMap, обработку исключений, сериализацию и инструменты сборки как Maven и Gradle. B2 вводит функциональное программирование, generics с bounded wildcards, custom annotations и практический курс Spring Boot, заканчивающийся Mini Project: REST API. Курсы C1 — это то место, где concurrency и производительность выходят на первый план — parallel streams, Java Memory Model, garbage collection, reflection, dynamic proxies и structured concurrency. Курс закрывается на C2 с Foreign Function and Memory API, самой низкоуровневой возможностью Java для прямого взаимодействия с native-кодом.

Как это работает

Каждый курс разбит на краткие, сосредоточенные уроки, которые вы выполняете в встроенном редакторе кода с real-time обратной связью. AI-репетитор доступен, когда вы застряли, а mini-проекты на ключевых этапах — Word Stats, Shape Hierarchy, Log Analyzer, REST API и Parallel Stats — позволяют вам применить полученные знания, прежде чем двигаться дальше.

Начать учиться →

Как ты будешь учиться

🎯
Интерактивные уроки
Практические упражнения по программированию с мгновенной обратной связью
🤖
ИИ-репетитор
Получай мгновенную помощь от нашего ИИ, когда застрянешь
💻
Встроенный редактор
Пиши и запускай код прямо в браузере
🏆
Сертификат
Получи сертификат при завершении курса
Программа обучения

104 курсов

Все курсы в пути обучения Java Academy.

01

Введение в Java

A13 уроков

Java — это высокоуровневый объектно-ориентированный язык программирования, представленный компанией Sun Microsystems в 1995 году. Благодаря…

02

Scanner и ввод из консоли

A14 уроковPRO

Scanner и ввод из консоли: читаем ввод с помощью Scanner, читаем числа и строки и не только

03

Привет, Java и настройка среды разработки

A13 уроковPRO

Начните изучать Java: узнайте, что такое программирование, как Java работает на JVM и какие инструменты понадобятся Вам дальше. Этот мини-к…

04

Основы переменных и выражений

A13 уроковPRO

Освойте переменные и выражения Java: изучите примитивные типы, объявления, присваивание, вывод значений и основы числовых выражений. Коротк…

05

Система типов и приведение типов в Java

A24 уроковPRO

Освойте систему типов Java: примитивные и ссылочные типы, расширяющие и сужающие преобразования, явное приведение типов и оператор instance…

06

Математика и форматирование чисел в Java

A24 уроковPRO

Изучите класс Math, BigDecimal для финансовой точности, NumberFormat для вывода с учётом локали и практического решения числовых задач в Ja…

07

Выражения switch и синтаксис стрелок

A24 уроковPRO

Выражения switch и синтаксис стрелок: switch в стиле стрелок, switch как выражение и не только

08

Текстовые блоки и многострочные строки

A24 уроковPRO

Текстовые блоки и многострочные строки: объявление текстовых блоков, отступы и удаление и не только

09

var и локальный вывод типов

A24 уроковPRO

var и локальный вывод типов: использование var для локальных переменных, когда var повышает читаемость и не только

10

Классы-обёртки и автоматическая упаковка

A24 уроковPRO

Классы-обёртки и автоматическая упаковка: примитивные и ссылочные типы, упаковка и распаковка и не только

11

Утилитный класс Arrays

A24 уроковPRO

Утилитный класс Arrays: Arrays.sort и сортировка, Arrays.binarySearch и не только

12

Случайные числа и математические утилиты Java

A24 уроковPRO

Случайные числа и математические утилиты Java: класс Math, генерация случайных чисел и не только

13

Чтение ввода с BufferedReader

A24 уроковPRO

Эффективно читайте пользовательский ввод и ввод из файла в Java.

14

Тернарные и условные выражения в Java

A24 уроковPRO

Записывайте компактную логику выбора с помощью условного оператора.

15

Символы и методы Character в Java

A24 уроковPRO

Работайте с отдельными символами с помощью класса Character.

16

Форматирование вывода с printf

A24 уроковPRO

Создавайте аккуратно отформатированный текст с помощью спецификаторов формата.

17

Именованные циклы и управление потоком в Java

A24 уроковPRO

Управляйте вложенными циклами с помощью break, continue и меток.

18

Условия I: основы if/else

A23 уроковPRO

Научитесь принимать решения в Java с помощью if, else if и else. Создавайте понятные логические выражения с операторами сравнения и логичес…

19

Условия II: операторы и switch

A23 уроковPRO

Глубже изучите сравнения (==, !=, <, >, <=, >=) и логическую логику (&&, ||, !). Узнайте о приоритете операторов, группировке с помощью ско…

20

Циклы I: while и do-while

A22 уроковPRO

Шаг за шагом изучите циклы while: инициализацию, условие, обновление и способы избежать бесконечных циклов. Потренируйтесь использовать неб…

21

Циклы II: for и шаблоны

A23 уроковPRO

Освойте цикл for: инициализация, условие и обновление в одной строке. Пишите циклы для подсчёта, вычисления сумм и создания простых шаблоно…

22

Операторы Java

A21 урокPRO

Java предоставляет множество операторов для работы с данными. С их помощью можно изменять и обрабатывать имеющиеся данные. К ним относятся…

23

Строки в Java

A21 урокPRO

Строковый тип данных используется в Java для хранения текстовых данных. Строки в Java являются ссылочными, а не примитивными типами данных.…

24

Массивы I: одномерные массивы

A23 уроковPRO

Изучите одномерные массивы: узнайте, что это такое, как их объявлять и создавать, обращаться к элементам и обновлять их, использовать lengt…

25

Массивы II: двумерные массивы

A26 уроковPRO

Изучите двумерные массивы в Java: объявляйте и создавайте их, обращайтесь к строкам и столбцам и перебирайте их с помощью вложенных циклов.…

26

Методы I: основы

A23 уроковPRO

Освойте основы методов Java: сигнатуры, параметры и аргументы, правила вызова и базовые принципы проектирования. Короткие целенаправленные…

27

Методы II: проектирование и повторное использование

A23 уроковPRO

Эффективно проектируйте методы и используйте их повторно: изучите семантику передачи по значению в Java, научитесь выбирать между статическ…

28

Перечисления Java

B14 уроковPRO

Научитесь определять и использовать перечисления в Java: константы перечислений, поля, методы, выражения switch с перечислениями и коллекци…

29

Записи Java и неизменяемые данные

B14 уроковPRO

Изучите записи Java (Java 16+): создание неизменяемых носителей данных, компактные конструкторы, пользовательские методы записей и выбор ме…

30

StringBuilder и производительность строк

B14 уроковPRO

StringBuilder и производительность строк: почему строки неизменяемы, создание строк с помощью StringBuilder и не только

31

BigDecimal и BigInteger

B14 уроковPRO

BigDecimal и BigInteger: почему для денег не подходит double, работа с BigDecimal и не только

32

API дат и времени java.time

B14 уроковPRO

API дат и времени java.time: LocalDate, LocalTime, LocalDateTime, Instant и Duration и не только

33

Optional в Java

B14 уроковPRO

Используйте Optional, чтобы избежать NullPointerExceptions: создавайте, преобразуйте, фильтруйте и идиоматично обрабатывайте Optional в Jav…

34

Подробный разбор строк в Java

B14 уроковPRO

Выйдите за рамки базовой работы со строками: изучите StringBuilder, StringJoiner, регулярные выражения, String.format, текстовые блоки и ра…

35

Varargs, перегрузка и статические члены в Java

B14 уроковPRO

Освойте разрешение перегрузки методов, параметры varargs, статические поля и методы, а также шаблоны проектирования служебных классов в Jav…

36

Вложенные и анонимные классы в Java

B14 уроковPRO

Изучите разновидности вложенных классов: статические вложенные, внутренние, локальные и анонимные классы, а также подходящие случаи их прим…

37

Итераторы и Iterable в Java

B14 уроковPRO

Реализуйте собственные интерфейсы Iterable и Iterator, чтобы сделать ваши структуры данных совместимыми с циклами for-each и коллекциями Ja…

38

Компараторы и сортировка в Java

B14 уроковPRO

Сортируйте коллекции и массивы с помощью Comparable, Comparator, ссылок на методы и многоуровневых цепочек сортировки на практических приме…

39

LinkedList и Deque в Java

B14 уроковPRO

Изучите внутреннее устройство LinkedList, двусвязную структуру, операции Deque, имитацию стека и случаи, когда LinkedList эффективнее Array…

40

TreeMap и TreeSet в Java

B14 уроковPRO

Освойте отсортированные коллекции: операции NavigableMap в TreeMap, TreeSet для уникальных отсортированных элементов, subMap/headMap/tailMa…

41

API Path и Files в Java NIO.2

B14 уроковPRO

Освойте современный API java.nio.file: создание Path, служебные методы Files, обход каталогов с walkFileTree и наблюдение за каталогами с W…

42

Сериализация Java и сохранение объектов

B14 уроковPRO

Изучите сериализацию в Java: интерфейс Serializable, transient-поля, serialVersionUID, пользовательские методы writeObject/readObject и сов…

43

Запечатанные классы и интерфейсы

B14 уроковPRO

Запечатанные классы и интерфейсы: объявление запечатанных типов, предложение permits и не только

44

Сопоставление с образцом для instanceof и записей

B14 уроковPRO

Сопоставление с образцом для instanceof и записей: сопоставление с образцом для instanceof, образцы записей и не только

45

Регулярные выражения с Pattern и Matcher

B14 уроковPRO

Регулярные выражения с Pattern и Matcher: компиляция шаблонов, поиск и сопоставление и не только

46

Внутреннее устройство HashMap и equals/hashCode

B14 уроковPRO

Внутреннее устройство HashMap и equals/hashCode: как работает HashMap, контракт equals/hashCode и не только

47

EnumMap, EnumSet и расширенные перечисления

B14 уроковPRO

EnumMap, EnumSet и расширенные перечисления: перечисления с полями и методами, абстрактные методы в перечислениях и не только

48

Ведение журнала с SLF4J и Logback

B14 уроковPRO

Ведение журнала с SLF4J и Logback: зачем нужно структурированное журналирование, фасад SLF4J и регистраторы и не только

49

Пакеты и модификаторы доступа

B11 урокPRO

Java использует модификаторы доступа, чтобы ограничивать доступ объектов друг к другу. Ограничения могут задаваться на уровне класса, перем…

50

Мини-проект: статистика слов

B13 уроковPRO

Создайте небольшой инструмент для сбора статистики по словам: разбирайте текст на слова, нормализуйте его, подсчитывайте слова и выводите л…

51

ООП I: классы и объекты

B13 уроковPRO

Изучите основы классов и объектов в Java. Создавайте простые классы, экземпляры объектов и разбирайтесь в их роли в ООП.

52

ООП II: практики

B13 уроковPRO

Повседневные практики ООП в Java: ключевое слово this, удобный для чтения toString, корректные equals и hashCode, а также практические сове…

53

Наследование I

B13 уроковPRO

Изучите основы наследования в Java: расширяйте базовый класс, вызывайте конструкторы super и безопасно повторно используйте общее поведение.

54

Абстракции и интерфейсы

B13 уроковPRO

Абстрактные классы и интерфейсы в Java: когда их использовать, как объявлять и как они помогают проектировать код.

55

Мини-проект: иерархия фигур

B13 уроковPRO

Спроектируйте и реализуйте небольшую иерархию фигур с абстрактным базовым классом, конкретными фигурами и полиморфным поведением.

56

Коллекции I: списки и множества

B13 уроковPRO

Изучите списки и множества Java: когда использовать каждый из них, основные операции и простые способы перебора.

57

Коллекции II: отображения и алгоритмы

B13 уроковPRO

Научитесь использовать отображения для поиска по связкам «ключ → значение», подсчёта частот и создания простых алгоритмов со списками и мно…

58

Исключения I: основы

B13 уроковPRO

Изучите основы обработки исключений: блоки try, catch и finally на простых примерах.

59

Исключения II: практика

B13 уроковPRO

Применяйте обработку исключений с пользовательскими исключениями, операторами throw и защитным программированием.

60

Файлы и ввод-вывод I

B13 уроковPRO

Изучите классы Java NIO Path и Files: безопасно создавайте, проверяйте и удаляйте файлы.

61

Файлы и ввод-вывод II

B13 уроковPRO

Изучите сериализацию объектов Java: записывайте объекты в файлы и считывайте их обратно.

62

Мини-проект: анализатор журналов

B13 уроковPRO

Создайте простой анализатор журналов, который читает, разбирает и обобщает данные из файлов журналов.

63

Инструменты сборки: Maven и Gradle

B14 уроковPRO

Инструменты сборки: Maven и Gradle: структура проекта Maven, плагины и цели Maven и не только

64

JDBC и объединение соединений в пул

B14 уроковPRO

JDBC и объединение соединений в пул: основы JDBC, PreparedStatement и не только

65

Подробный разбор сборщиков потоков Java

B24 уроковPRO

Выйдите за рамки базовых потоков: изучите groupingBy, partitioningBy, toMap, counting, summarizingInt, joining и создание собственных сборщ…

66

Ссылки на методы в Java

B24 уроковPRO

Упрощайте лямбда-выражения с помощью ссылок на методы: статических, экземплярных, произвольного экземпляра и конструкторов на практических…

67

Порождающие шаблоны проектирования в Java

B24 уроковPRO

Реализуйте четыре ключевых порождающих шаблона в Java: Singleton с безопасностью для многопоточности, Factory Method, Abstract Factory и Bu…

68

Поведенческие шаблоны проектирования в Java

B24 уроковPRO

Освойте поведенческие шаблоны проектирования в Java: Observer, Strategy, Command и Template Method на конкретных примерах из реальных прило…

69

Функциональные интерфейсы подробно

B24 уроковPRO

Функциональные интерфейсы подробно: Function и BiFunction, Supplier и Consumer и не только

70

Потоки примитивных типов

B24 уроковPRO

Потоки примитивных типов: IntStream и LongStream, операции диапазона и агрегирования и не только

71

Ограниченные шаблоны подстановки и PECS

B24 уроковPRO

Ограниченные шаблоны подстановки и PECS: шаблоны с верхней границей, шаблоны с нижней границей и не только

72

Интерфейсы и обобщения

B23 уроковPRO

Практическое применение интерфейсов и основы обобщений Java для более безопасного кода, пригодного для повторного использования.

73

Пользовательские аннотации в Java

B24 уроковPRO

Определяйте пользовательские аннотации, политики хранения и цели применения, обрабатывайте их во время выполнения с помощью рефлексии и на…

74

Продвинутые операции над потоками и Spliterator

B24 уроковPRO

Освойте продвинутые возможности Stream: flatMap для вложенных структур, peek для отладки, подводные камни параллельных потоков, внутреннее…

75

Spring Boot: конфигурация и внедрение зависимостей

B24 уроковPRO

Освойте автоматическую конфигурацию Spring Boot, свойства приложения, профили, @Bean, @Component, @Service, @Repository и лучшие практики в…

76

Spring Data JPA: сущности и репозитории

B24 уроковPRO

Связывайте сущности Java с таблицами базы данных с помощью аннотаций JPA, определяйте репозитории Spring Data, пишите JPQL- и нативные запр…

77

REST API в Spring Boot: валидация и обработка ошибок

B24 уроковPRO

Создавайте надежные REST API: Bean Validation с @Valid, пользовательские валидаторы, глобальную обработку исключений с помощью @ControllerA…

78

Тестирование с JUnit 5: параметризованные и интеграционные тесты

B24 уроковPRO

Выйдите за рамки базовых модульных тестов: создавайте параметризованные тесты с @MethodSource и @CsvSource, интегрируйте базы данных с Test…

79

Безопасность Java: хеширование, шифрование и JWT

B24 уроковPRO

Реализуйте основы безопасности в Java: используйте MessageDigest для хеширования, шифрование AES, HMAC-SHA256, а также создавайте и проверя…

80

Модульная система Java (JPMS)

B24 уроковPRO

Модульная система Java (JPMS): module-info.java, requires и exports и не только

81

Современный HTTP-клиент

B24 уроковPRO

Современный HTTP-клиент: java.net.http.HttpClient, асинхронные запросы и не только

82

GraalVM и нативный образ

B24 уроковPRO

GraalVM и нативный образ: что такое GraalVM, создание нативного образа и не только

83

Лямбда-выражения и функциональные интерфейсы

B23 уроковPRO

Изучите лямбда-выражения и функциональные интерфейсы Java.

84

Потоки I: конвейеры

B23 уроковPRO

Научитесь использовать потоки Java для обработки данных с помощью конвейеров.

85

Начало работы со Spring Boot

B23 уроковPRO

Начните работать со Spring Boot: настройте проект, используйте стартеры и запустите первое приложение.

86

Данные и сервисы

B23 уроковPRO

Научитесь использовать Spring Data JPA и базу данных H2 вместе с репозиториями.

87

Тестирование и поставка

B23 уроковPRO

Тестируйте приложения Spring с помощью WebTestClient и JUnit, настраивайте их и создавайте пакеты.

88

Мини-проект: REST API

B24 уроковPRO

Спроектируйте, реализуйте и протестируйте REST API с помощью Spring Boot.

89

ExecutorService и пулы потоков в Java

C14 уроковPRO

Управляйте жизненным циклом потоков с помощью ExecutorService: фиксированные, кэшируемые и планируемые пулы потоков, отправка задач Callabl…

90

Блокировки и атомарные переменные в Java

C14 уроковPRO

Выйдите за рамки synchronized: изучите ReentrantLock, ReadWriteLock, StampedLock, AtomicInteger, AtomicReference и шаблоны неблокирующих ст…

91

Параллельные потоки и производительность

C14 уроковPRO

Параллельные потоки и производительность: создание параллельных потоков, когда параллелизм помогает и не только

92

Управление памятью и сборка мусора в Java

C14 уроковPRO

Изучите модель памяти JVM: области кучи (Young, Old и Metaspace), алгоритмы сборки мусора (G1, ZGC), утечки памяти, профилирование с помощь…

93

CompletableFuture и асинхронные конвейеры в Java

C14 уроковPRO

Комбинируйте асинхронные вычисления с помощью CompletableFuture: thenApply, thenCompose, allOf, anyOf, exceptionally и построение неблокиру…

94

Рефлексия и динамические прокси в Java

C14 уроковPRO

Используйте Reflection API для изучения и вызова классов во время выполнения, создания динамических прокси и понимания того, как фреймворки…

95

Внутреннее устройство JVM: загрузка классов и байткод

C14 уроковPRO

Загляните внутрь JVM: этапы загрузки классов, иерархия загрузчиков bootstrap, extension и application, изучение байткода с помощью javap и…

96

Виртуальные потоки (проект Loom)

C14 уроковPRO

Виртуальные потоки (проект Loom): что такое виртуальные потоки, создание виртуальных потоков и не только

97

Структурированная конкурентность

C14 уроковPRO

Структурированная конкурентность: модель структурированной конкурентности, StructuredTaskScope и не только

98

Микробенчмаркинг с JMH

C14 уроковPRO

Микробенчмаркинг с JMH: зачем нужен JMH, написание бенчмарка и не только

99

Профилирование и настройка производительности Java

C14 уроковPRO

Профилирование и настройка производительности Java: поиск узких мест, Java Flight Recorder и не только

100

Потоки II: производительность и подводные камни

C13 уроковPRO

Изучите расширенные особенности потоков, включая упорядочивание и сокращение вычислений по короткому замыканию.

101

Параллелизм I

C12 уроковPRO

Введение в параллелизм Java с потоками, исполнителями и синхронизацией.

102

Параллелизм II

C13 уроковPRO

Расширенный параллелизм: синхронизация, блокировки, атомарные операции и распространённые проблемы.

103

Мини-проект: параллельная статистика

C13 уроковPRO

Создайте проект, который вычисляет статистику параллельно с использованием потоков и средств параллелизма.

104

API внешних функций и памяти

C24 уроковPRO

API внешних функций и памяти: почему FFM лучше JNI, MemorySegment и Arena и не только

Часто задаваемые вопросы

Часто задаваемые вопросы

Курс Java Academy бесплатный?

Да. Ты можешь начать курс Java Academy бесплатно и пройти его интерактивные уроки без платежей. Опциональная подписка PRO открывает продвинутые инструменты на базе ИИ и сертификат, который можно поделиться.

Нужен ли мне опыт, чтобы выучить JAVA?

Нет. Курс начинается с основ и постепенно переходит к более сложным темам, поэтому ты можешь начать даже без предыдущего опыта JAVA.

Как я выучу JAVA на CoddyKit?

Ты учишься на практике. Короткие интерактивные уроки сочетают понятное объяснение с практическими упражнениями по программированию, которые выполняются в реальном времени, а круглосуточный ИИ-репетитор помогает, когда ты застрянешь.

Получу ли я сертификат за завершение Java Academy?

Да. Пользователи PRO могут пройти экзамен и получить сертификат завершения Java Academy с проверяемым кодом.

Могу ли я выучить JAVA на телефоне?

Да. CoddyKit доступен в браузере и как нативное приложение на iOS и Android, так что ты можешь выучить JAVA на любом устройстве и твой прогресс синхронизируется.

Начни Java Academy прямо сейчас

Присоединись к тысячам учеников, которые осваивают программирование с помощью уроков на AI.

Начать бесплатно →Все курсы