Курс на Stepik
Обложка курса «Java для начинающих» на Stepik
500 ₽

Java для начинающих ★ 5.000

Открыть на
STEPIK.ORG

Java 21 с нуля: JVM, синтаксис, ООП, коллекции, исключения, Stream API, многопоточность, Maven, JUnit и итоговый проект.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Java для начинающих»Учеников на курсе 33
Сертификаты, выданные на курсе «Java для начинающих»Сертификатов выдано 0
Отзывы о курсе «Java для начинающих»Отзывов получено 2
Рейтинг курса «Java для начинающих»Рейтинг курса 5.000
Уроки в курсе «Java для начинающих»Количество уроков 128
Тесты в курсе «Java для начинающих»Количество квизов 558
Время прохождения курса «Java для начинающих»Время прохождения курса —
Стоимость курса «Java для начинающих»Стоимость курса 500 ₽ —
Обновления курса «Java для начинающих»Обновления курса — —
Дата публикации курса «Java для начинающих»Дата публикации курса — ———
Последнее обновление курса «Java для начинающих»Последнее обновление — ———
Сложность easy — ———

Содержание курса

Разделы в курсе «Java для начинающих» 19 разделов Уроки в курсе «Java для начинающих» 128 уроков Тесты в курсе «Java для начинающих» 558 тестов Время прохождения курса «Java для начинающих» 0 ч. Последнее обновление курса «Java для начинающих» обн. 16 июля 2026

Модуль 1. Введение: почему Java и как мы будем учиться

6 уроков
1. О курсе, маршрут обучения и почему Java до сих пор правит бал ↗
2. Что такое JVM и почему «Write Once, Run Anywhere» — не просто… ↗
3. JDK, JRE и компилятор: кто есть кто в экосистеме Java ↗
4. Устанавливаем JDK 21 и проверяем, что всё работает ↗
5. Первая программа: class, main и загадочный System.out.println ↗
6. Как устроен этот курс и что вы будете уметь в конце ↗

Модуль 2. Переменные и типы данных

8 уроков
1. Переменная как именованная ячейка памяти: объявляем через тип… ↗
2. Примитивные типы: byte, short, int, long — целые числа во… ↗
3. float и double: числа с плавающей точкой и почему 0.1 + 0.2… ↗
4. char и кодировки: один символ — не всегда один char, но… ↗
5. boolean: только true и false, никаких 0 и 1 ↗
6. Ссылочный тип String: строка как объект, а не массив char-ов ↗
7. Ключевое слово var: автоматический вывод типа и когда им… ↗
8. Приведение типов: когда Java делает это сама, а когда нужна… ↗

Модуль 3. Операторы

7 уроков
1. Арифметические операторы: +, -, *, /, % и сюрпризы… ↗
2. Операторы сравнения: ==, !=, <, >, <=, >= и как Java… ↗
3. Логические операторы: &&, ||, ! — строим составные условия ↗
4. Операторы присваивания: =, +=, -= и компания — короче и… ↗
5. Тернарный оператор ? : — условное выражение в одну строку ↗
6. Приоритет операторов: кто главнее и когда ставить скобки ↗
7. Инкремент и декремент: ++ и --, префиксная и постфиксная форма ↗

Модуль 4. Управление потоком выполнения

8 уроков
1. if и else: базовая развилка — делай одно ИЛИ другое ↗
2. if-else-if: цепочка условий, когда вариантов больше двух ↗
3. Классический switch: выбираем ветку по значению числа, строки… ↗
4. Новый switch-expression: компактный синтаксис со стрелкой и… ↗
5. Цикл for: счётчик, условие, шаг — классическая тройка в одном… ↗
6. Цикл while: повторяем, пока условие истинно ↗
7. Цикл do-while: хотя бы один раз, даже если условие ложно ↗
8. break и continue: прерываем цикл и перепрыгиваем итерацию ↗

Модуль 5. Массивы

7 уроков
1. Объявляем массив: тип[], new и квадратные скобки после типа ↗
2. Инициализация массива: литералы и значения по умолчанию ↗
3. Доступ по индексу: читаем и меняем элементы, помним про границы ↗
4. Свойство length: длина массива и почему её нельзя изменить ↗
5. Цикл for-each: перебираем элементы без индекса ↗
6. Многомерные массивы: таблицы и матрицы — массив массивов ↗
7. Класс java.util.Arrays: toString, sort, fill и другие помощники ↗

Модуль 6. Строки

7 уроков
1. Пул строк: почему одинаковые литералы — это один и тот же объект ↗
2. Конкатенация строк: оператор +, метод concat и что внутри ↗
3. Основные методы String: length, charAt, substring, indexOf… ↗
4. StringBuilder: эффективное построение строк в цикле ↗
5. Форматирование: String.format, printf и язык шаблонов %s %d %.2f ↗
6. Сравнение строк: equals и equalsIgnoreCase — сравниваем… ↗
7. Оператор == для строк: сравниваем ссылки, не текст — вечная… ↗

Модуль 7. Методы

7 уроков
1. Объявляем метод: модификатор доступа, возвращаемый тип, имя и… ↗
2. Параметры методов: передача по значению — примитивы… ↗
3. return и void: возвращаем результат или просто выполняем… ↗
4. Перегрузка методов: одно имя, разные параметры — компилятор… ↗
5. Varargs: переменное число аргументов через многоточие ↗
6. Рекурсия: метод вызывает сам себя и когда это оправдано ↗
7. Область видимости: локальные переменные, параметры и поля класса ↗

Модуль 8. Классы и объекты — введение

8 уроков
1. Ключевое слово class: определяем новый тип с полями и методами ↗
2. Поля класса: состояние объекта — переменные внутри class ↗
3. Методы экземпляра: поведение объекта, доступ к полям через this ↗
4. Конструктор: особый метод, который вызывается при new ↗
5. Ключевое слово this: ссылка на текущий объект и устранение… ↗
6. Ключевое слово new: оператор, который выделяет память и… ↗
7. static: поля и методы, принадлежащие классу, а не экземпляру ↗
8. Константы: static final — значение, которое никогда не меняется ↗

Модуль 9. Инкапсуляция

6 уроков
1. private: скрываем поля от внешнего мира и защищаем инварианты ↗
2. Геттеры и сеттеры: контролируемый доступ к состоянию через… ↗
3. package-private: доступ по умолчанию — видно внутри пакета… ↗
4. protected: доступ для наследников и классов того же пакета ↗
5. Иммутабельность: объекты, которые нельзя изменить после создания ↗
6. record: современный способ объявить неизменяемый класс данных… ↗

Модуль 10. Наследование

7 уроков
1. extends: наследуем поля и методы родительского класса ↗
2. super: обращаемся к родительскому конструктору и… ↗
3. Переопределение методов: меняем поведение родителя в наследнике ↗
4. Класс Object: невидимый родитель всех классов и его главные… ↗
5. equals, hashCode и toString: три кита, которые должны… ↗
6. final: запрещаем наследование класса и переопределение метода ↗
7. Абстрактные классы: общий шаблон, который нельзя создать… ↗

Модуль 11. Интерфейсы

7 уроков
1. interface: объявляем набор методов без реализации ↗
2. implements: класс обязуется выполнить контракт интерфейса ↗
3. default-методы: готовая реализация прямо в интерфейсе с Java 8 ↗
4. static-методы в интерфейсе: вспомогательные функции при… ↗
5. Функциональный интерфейс: ровно один абстрактный метод — и… ↗
6. Comparable и Comparator: учим объекты сравнивать себя и друг… ↗
7. Множественная реализация: класс может реализовать несколько… ↗

Модуль 12. Полиморфизм

6 уроков
1. Приведение типов: upcasting безопасен, downcasting требует… ↗
2. instanceof: проверяем реальный тип объекта перед приведением ↗
3. Pattern matching в instanceof: современный синтаксис —… ↗
4. Виртуальные методы: Java всегда вызывает метод реального… ↗
5. Полиморфные коллекции: список родительского типа хранит любых… ↗
6. Принцип подстановки Лисков: наследник не должен ломать… ↗

Модуль 13. Исключения

7 уроков
1. try и catch: перехватываем исключение и решаем, что делать… ↗
2. Checked и unchecked исключения: какие компилятор ЗАСТАВЛЯЕТ… ↗
3. finally: блок, который выполнится в ЛЮБОМ случае — и при… ↗
4. try-with-resources: автоматическое закрытие файлов и других… ↗
5. throw и throws: выбрасываем исключение сами и предупреждаем… ↗
6. Свои классы исключений: наследники Exception и RuntimeException ↗
7. Цепочки исключений: сохраняем причину через конструктор cause ↗

Модуль 14. Коллекции

7 уроков
1. List и ArrayList: упорядоченный список с быстрым доступом по… ↗
2. Set и HashSet: множество уникальных элементов без порядка ↗
3. Map и HashMap: словарь — ключ, значение и молниеносный поиск ↗
4. Итератор: единый способ обойти любую коллекцию ↗
5. Сортировка коллекций: Comparable для естественного порядка… ↗
6. Неизменяемые коллекции: List.of, Set.of, Map.of — защита от… ↗
7. Знакомство со Stream API: filter, map, collect — коллекция… ↗

Модуль 15. Дженерики

6 уроков
1. Зачем нужны дженерики: прощаемся с Object и приведениями типов ↗
2. Дженерик-класс: параметр типа в угловых скобках после имени… ↗
3. Дженерик-методы: тип-параметр перед возвращаемым типом метода ↗
4. Wildcards: ? extends T и ? super T — гибкость без потери… ↗
5. Bounded type parameters: > —… ↗
6. Diamond operator: <> — компилятор сам выводит тип, не… ↗

Модуль 16. Работа с файлами и вводом-выводом

7 уроков
1. Класс File: путь к файлу или директории — проверяем… ↗
2. Path и Files: современный NIO — читаем, пишем, копируем и… ↗
3. Чтение текстового файла: Files.readString, Files.lines и… ↗
4. Запись в текстовый файл: Files.writeString и BufferedWriter ↗
5. Байтовые потоки: InputStream и OutputStream для любых данных ↗
6. Буферизация: зачем нужен буфер и как он ускоряет ввод-вывод ↗
7. try-with-resources с файлами: гарантированное закрытие без… ↗

Модуль 17. Многопоточность — введение

6 уроков
1. Класс Thread: создаём и запускаем поток — второй путь… ↗
2. Интерфейс Runnable: отделяем задачу от потока и передаём… ↗
3. synchronized: защищаем общие данные от одновременного доступа ↗
4. wait и notify: потоки договариваются друг с другом о… ↗
5. ExecutorService: пул потоков — создаём, отправляем задачи… ↗
6. Future и Callable: задача, которая вернёт результат, когда… ↗

Модуль 18. Инструменты разработчика

5 уроков
1. Maven и Gradle: зачем нужна система сборки и… ↗
2. JUnit: пишем модульные тесты — аннотации @Test, assertEquals… ↗
3. Отладка в IDE: точки останова, пошаговое выполнение и… ↗
4. Логирование: java.util.logging и почему логи красноречивее… ↗
5. JAR-файл: упаковываем программу в один архив и запускаем java… ↗

Модуль 19. Итоговый проект: консольный менеджер задач

6 уроков
1. Постановка задачи: что должен уметь наш менеджер задач — add… ↗
2. Модель данных: класс Task со статусом, приоритетом и датой —… ↗
3. Сервисный слой: TaskService — вся бизнес-логика в одном… ↗
4. Файловое хранилище: сохраняем задачи в JSON и читаем при старте ↗
5. Тесты: покрываем модель и сервис юнит-тестами через JUnit ↗
6. Куда двигаться дальше: анонс курсов «Scala для… ↗