Курс на Stepik
Обложка курса «Подготовка к Java-сертификации профессионального уровня (OCP)» на Stepik
8 600 ₽

Подготовка к Java-сертификации профессионального уровня (OCP) ★ 5.000

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

Курс направлен на сдачу сертификационного экзамена Oracle Certified Professional, Java SE 8 Programmer II (1Z0-809). Он также отлично подойдет в качестве пособия для самоподготовки в целях дальнейшего развития, углубления и совершенствования навыков Java-программирования вплоть до уровня Middle.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Подготовка к Java-сертификации профессионального уровня (OCP)»Учеников на курсе 8
Сертификаты, выданные на курсе «Подготовка к Java-сертификации профессионального уровня (OCP)»Сертификатов выдано 0
Отзывы о курсе «Подготовка к Java-сертификации профессионального уровня (OCP)»Отзывов получено 1
Рейтинг курса «Подготовка к Java-сертификации профессионального уровня (OCP)»Рейтинг курса 5.000
Уроки в курсе «Подготовка к Java-сертификации профессионального уровня (OCP)»Количество уроков 170
Время прохождения курса «Подготовка к Java-сертификации профессионального уровня (OCP)»Время прохождения курса —
Стоимость курса «Подготовка к Java-сертификации профессионального уровня (OCP)»Стоимость курса 8 600 ₽ —
Обновления курса «Подготовка к Java-сертификации профессионального уровня (OCP)»Обновления курса — —
Дата публикации курса «Подготовка к Java-сертификации профессионального уровня (OCP)»Дата публикации курса — ———
Последнее обновление курса «Подготовка к Java-сертификации профессионального уровня (OCP)»Последнее обновление — ———
Сложность normal — ———

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

Разделы в курсе «Подготовка к Java-сертификации профессионального уровня (OCP)» 14 разделов Уроки в курсе «Подготовка к Java-сертификации профессионального уровня (OCP)» 170 уроков Время прохождения курса «Подготовка к Java-сертификации профессионального уровня (OCP)» 36 ч. Последнее обновление курса «Подготовка к Java-сертификации профессионального уровня (OCP)» обн. 12 мая 2026

Intro + рекомендации к методике подготовки

5 уроков
1. Почему сертификация --- это лучший подарок самому себе ↗
2. Введение ↗
3. Рекомендации ↗
4. Подготовка учебной среды (апдейт для 2025) ↗
5. Кодовая база, слайды, диаграммы, практич.задачи и т.д. ↗

Тематические группы 1 & 2: Базовый и продвинутый дизайн классов

9 уроков
1. Ключевое слово final ↗
2. Наследование и полиморфизм ↗
3. Перечисляемые дата-типы (enums) ↗
4. Внутренние классы ↗
5. Шаблон Singleton ↗
6. Немутирующие классы ↗
7. Интерфейсы ↗
8. Лямбда-выражения ↗
9. Важный --- даже ГИПЕРВАЖНЫЙ --- комментарий ↗

Тематическая группа 3: Generics и коллекции

22 урока
1. Введение ↗
2. Параметризация ↗
3. Пределы ? extends и ? super ↗
4. Подробнее про extends и super ↗
5. Интерфейсные пересечения ↗
6. Ограниченность дженериков ↗
7. Обзор коллекций в Java ↗
8. Lists (списки) ↗
9. Sets (множества) ↗
10. Утечка памяти из-за equals() ↗
11. Класс TreeSet ↗
12. Maps (отображения, «мапы») ↗
13. Queues (очереди) ↗
14. Упорядоченные коллекции ↗
15. Асимптотическая сложность и ее последствия ↗
16. Неуместная структура данных (пример с Java Mission Control) ↗
17. Как выполнять сортировку ↗
18. Естественный порядок ↗
19. Подробнее об упорядочении ↗
20. Аккуратней с компаратором! ↗
21. Сортировка: подведем итоги разбора ↗
22. И еще разок про параметризацию с extends ↗

Тематические группы 4 & 5: Встроенные функц.интерфейсы и Stream

20 уроков
1. Введение ↗
2. «Универсальный анализатор» на лямбдах ↗
3. Пакет java.util.function ↗
4. Что такое Stream ↗
5. Метод map() ↗
6. Метод peek() и «короткозамыкающие» операторы ↗
7. Класс Optional ↗
8. Методы для обработки данных ↗
9. Класс Collectors ↗
10. Источники ↗
11. Метод flatMap() ↗
12. Специфика обработки данных в функц.конвейерах ↗
13. Параллельные стримы ↗
14. «Подводные камни» ↗
15. Понятие statefulness ↗
16. Редукция и ее особенности ↗
17. Пример «высушивания» кода на стримах: UniMaxDemo ↗
18. Как сделать distinct() более «разборчивым» ↗
19. Сегментация данных с помощью partitioningBy() ↗
20. Классификация данных с помощью groupingBy() ↗

Кодовый практикум к разделу про ФП

1 урок
1. Лямбда-трейдеры ↗

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

3 урока
1. Динамические лямбды ↗
2. Каррированные функции ↗
3. Глубокое погружение в ссылки на методы ↗

Тренировочные вопросы: Тематические Группы 1 – 5

5 уроков
1. Разбор тренировочных вопросов по Группе 1 ↗
2. Разбор тренировочных вопросов по Группе 2 ↗
3. Разбор тренировочных вопросов по Группе 3 ↗
4. Разбор тренировочных вопросов по Группе 4 ↗
5. Разбор тренировочных вопросов по Группе 5 ↗

Тематическая группа 6: Assertions и обработка исключений

3 урока
1. Обработка исключений и ключевое слово assert ↗
2. (Факультативно) Видеолекция по обработке исключений из OCA-курса ↗
3. Разбор тренировочных вопросов по Группе 6 ↗

Тематическая группа 7: Date / Time API

3 урока
1. Хроноклассы в пакете java.time ↗
2. (Факультативно) Видеолекция по хроноклассам из OCA-курса ↗
3. Разбор тренировочных вопросов по Группе 7 ↗

Тематическая группа 8: Многопоточность

47 уроков
1. Архитектура фон Неймана ↗
2. Пользовательские процессы ↗
3. Оценка потребного размера ОЗУ ↗
4. Процессы и их роли ↗
5. Сегменты памяти ↗
6. Знакомство с подпроцессами (threads) ↗
7. Подпроцессы пользователя и ОС ↗
8. Сходства и отличия процессов и подпроцессов ↗
9. Что может пойти не так ↗
10. Мониторы ↗
11. Синхронизирующие абстрации ↗
12. Создание подпроцесса ↗
13. Состояния подпроцесса ↗
14. Приоритет подпроцесса ↗
15. Метод join() ↗
16. Метод interrupt() ↗
17. Связка wait() и notify() ↗
18. Ключевое слово volatile ↗
19. Что стоит за volatile ↗
20. Ключевое слово synchronized ↗
21. Блоки синхронизации ↗
22. Статическая блокировка (deadlock) ↗
23. Счетчик с монитором ↗
24. Интерфейс Lock ↗
25. Класс ReentrantLock ↗
26. Атомарный счетчик ↗
27. Паттерн Producer-Consumer на связке wait/notify ↗
28. С Новым годом! на связке wait/notify ↗
29. Паттерн Producer-Consumer на связке Lock/Condition ↗
30. ExecutorService с Runnable ↗
31. ExecutorService с Semaphore ↗
32. ExecutorService с Callable ↗
33. ExecutorService и метод awaitTermination() ↗
34. Класс CyclicBarrier ↗
35. CyclicBarrier в действии ↗
36. Фреймворк Fork/Join ↗
37. Рекурсия: top-down и bottom-up ↗
38. Рекурсия: пример доказательства по индукции ↗
39. Рекурсивное вычисление площади ↗
40. Простейший пример с Fork/Join ↗
41. Бенчмаркинг суммирования на Fork/Join ↗
42. ЭКСТРА: Concurrent, multithreaded и parallel ↗
43. ЭКСТРА: Race Conditions и Data Races ↗
44. ЭКСТРА: Состояние гонки в бинарных семафорах и мьютексах ↗
45. ЭКСТРА: Liveness и синхронизация ↗
46. ЭКСТРА: Знакомство с виртуальными подпроцессами ↗
47. Разбор тренировочных вопросов по Группе 8 ↗

Тематические группы 9 & 10: IO и NIO.2

31 урок
1. Механизмы ввода/вывода в Java: базовые концепции ↗
2. Входные и выходные потоки данных ↗
3. Класс File ↗
4. Примеры использования File-объекта ↗
5. Класс FileInputStream ↗
6. Упражняемся с FileInput/OutputStream ↗
7. Класс FilterInputStream ↗
8. Маркировка ↗
9. «Перескок» (skipping over) ↗
10. Буферизованные потоки ↗
11. Класс DataInput/OutputStream ↗
12. Readers и Writers ↗
13. Упражняемся с BufferedReader/Writer ↗
14. Классы PrintStream и PrintWriter ↗
15. Понятие «персистентность» ↗
16. Пример простейшей сериализации ↗
17. Почему персистентность нужна ↗
18. Требования к сериализуемому классу ↗
19. Ключевое слово transient ↗
20. Что такое SerialVersionUID ↗
21. Пример полного цикла персистирования ↗
22. Взаимодействие с пользователем ↗
23. Пользовательский ввод на новый лад ↗
24. Как украсть пароль ↗
25. NIO.2: базовые концепции ↗
26. Интерфейс Path ↗
27. Методы resolve(), relativize() и normalize() ↗
28. Симлинки в NIO.2 ↗
29. Манипуляции с файлами и директориями ↗
30. Дополнения в NIO.2 для связки с Stream_API ↗
31. Разбор тренировочных вопросов по Группам 9 и 10 ↗

Тематическая группа 11: JDBC

8 уроков
1. JDBC API: базовые концепции ↗
2. Ключевые компоненты JDBC ↗
3. Работа с ResultSet ↗
4. CRUD-операции ↗
5. ЭКСТРА: PreparedStatement и CallableStatement ↗
6. Специфические особенности сертификационных вопросов по JDBC ↗
7. Установка и подключение тренировочной СУБД Apache Derby ↗
8. Разбор тренировочных вопросов по Группе 11 ↗

Тематическая группа 12: Локализация приложений

12 уроков
1. Зачем нужна локализация ↗
2. Класс Locale ↗
3. Класс Properties ↗
4. Загрузка и сохранение свойств ↗
5. Класс ResourceBundle ↗
6. Форматирование дат и времени ↗
7. Локализация приложения с календарными датами ↗
8. Иерархия подбора нужного ресурса ↗
9. Скомпилированные ресурсы ↗
10. Форматирование и парсинг чисел ↗
11. Упраженение с локализацией численных данных ↗
12. Разбор тренировочных вопросов по Группе 12 ↗

Outro

1 урок
1. Заключительное слово ↗