Курс Java-розробник

  • Online
  • Для начинающих
  • Java
Образовательный центр: JavaRush
Формат:Курс
Язык обучения:Ukrainian
Длительность обучения:12 месяцев
Начало курса:16.12.2025
Стоимость обучения:32 400 UAH за курс

Курс від нуля до Junior-спеціаліста за 12 місяців. Протягом навчання Ви вивчите всі навики та технології необхідні для майбутньої професії.

Програма курсу

Java Syntax

Вступне заняття. Команди та перша програма на Java

  • Про переваги Java та її сфери застосування
  • Про JavaRush та Java‑університет
  • Структура програми, метод main
  • sout
  • Знайомство з сайтом та WebIDE

Робота зі змінними, типи int та String

  • Збереження тексту до змінної, виведення її в консолі
  • Оголошення та ініціалізація змінних String
  • Коментарі в коді
  • Елементарні математичні операції зі змінними типу int
  • Інкремент, декремент
  • Конкатенація
  • Integer.parseInt(), String.valueOf()

Знайомство з типами та введення з клавіатури. Знайомство з IDEA

  • Зберігання примітивних змінних у пам'яті
  • Зберігання String змінних у пам'яті
  • byte, short, char, long, float, double
  • System.in, Scanner
  • Методи Scanner
  • Встановлення IDEA, завантаження проєкту, завантаження JDK (версія 11)
  • Встановлення плагіна, знайомство з його функціоналом

Умовний оператор

  • if, if-else, if-else-if
  • Блоки команд
  • Вкладені блоки команд (вкладені if-и)
  • Тип boolean
  • Оператори порівняння, double
  • Логічні AND, OR, NOT, XOR
  • Тернарний оператор
  • Порівняння примітивів та String

Факультатив

  • Підтягуємо новачків
  • Досвідченим студентам розповідаємо про фішки IDEA тощо
  • Компіляція класу в байт-код з консолі, запуск програми

Цикли

  • Проблематика на прикладі задачі, у якій потрібно виконати дію багато разів
  • while
  • break, continue
  • for
  • do-while
  • Порівняння різних циклів, роз'яснення, де і який краще використовувати

Масиви

  • Створення та заповнення масивів
  • Обхід масиву
  • Зберігання масивів у пам'яті

Двомірні масиви

  • Двомірні масиви
  • Зубчаті масиви
  • n-мірні масиви

Функції

  • Оголошення та виклик методів
  • Параметри
  • Повертаєме значення, void
  • Модифікатори доступу
  • Локальні змінні методу
  • Модифікатори методів, метод main

Робота з рядками та продовження попередньої теми

  • Константи
  • Приховування змінних (shadowing)
  • Екранування символів
  • Основні методи класу String

Факультатив

  • Літерали
  • Кодування
  • Допоміжні класи для роботи з рядками: StringBuilder, String.format
  • Утилітний клас Arrays

Типи даних. Знайомство з ООП

  • Примітивні типи
  • Приведення типів даних
  • Посилальні (зсилочні) типи
  • об'єкти
  • null
  • Знайомство з ООП
  • Наслідування

Об'єкти

  • Створення об'єктів (new)
  • Конструктор, конструктор за замовчуванням
  • Конструктор з параметрами
  • Порядок виклику конструкторів під час наслідування
  • Доступ до полів об'єкта (геттер, сеттер)
  • hashCode, equals

Класи та static

  • Статичні змінні
  • Порівняння статичних та нестатичних змінних
  • Статичні методи
  • Порядок ініціалізациії при використанні конструкторів та статичних блоків
  • Внутрішні класи

Факультатив

  • Життєвий цикл об'єкта
  • Завантаження класу

Списки та Generics

  • Класи-обгортки
  • ArrayList
  • Array VS ArrayList
  • Типізація ArrayList (дженерики)

Колекції

  • Ієрархія колекцій
  • Set, HashSet
  • iterator, for-each
  • Map, HashMap
  • Для яких задач які колекції краще використовувати
  • Collections

Факультатив

  • LinkedList
  • ArrayList VS LinkedList
  • Queue
  • SortedMap, TreeMap

Singleton, Enum, switch

  • Для чого потрібні перераховування
  • Оголошення Enum
  • Enum - найкращий сінглтон
  • switch

Винятки

  • Нормальне виконання коду та помилки в рантаймі
  • try-catch
  • Ієрархія винятків
  • multicatch
  • throw
  • checked і unchecked винятки
  • throws
  • finally
  • Створення власних винятків
  • Throwable
  • stack trace
  • try-with-resources
  • AutoCloseable

Факультатив

  • Обгортання винятку
  • Error

Потоки введення-виведення

  • InputStream
  • Reader
  • BufferedReader
  • OutputStream
  • Writer
  • BufferedWriter

Потоки введення-виведення. Pattern Decorator

  • ByteArrayInputStream
  • ByteArrayOutputStream
  • Комбінування потоків

Потоки введення-виведення. Java.nio

  • io VS nio
  • FileChannel
  • Selector
  • Path
  • Paths
  • Files

Робота з часом та датою

  • Date
  • DateFormat
  • Calendar
  • LocalDate, LocalTime, LocalDateTime
  • Instant
  • ZonedDateTime
  • DateTimeFormatter

Git. Підсумковий проєкт (криптоаналізатор)

Java Core

ООП: інкапсуляція, поліморфізм. Інтерфейси

  • Інкапсуляція
  • Поліморфізм
  • Приведення типів
  • this, super
  • Інтерфейси

ООП: перевантаження, перевизначення, абстрактні класи

  • Абстрактний клас
  • Реалізація абстрактних методів предка
  • Перевантаження (overload) методів - однакові назви
  • Перевизначення (override) методів

Stream API

  • Анонімний внутрішній клас
  • Реалізація абстрактних методів предка
  • Лямбда-вирази
  • Функціональні інтерфейси
  • method reference
  • Stream
  • Проміжні та термінальні методи Stream-у
  • map-reduce

ООП: композиція, агрегація, наслідування

  • Асоціація: композиція та агрегація
  • Наслідування

Інтерфейси: порівняння з абстрактним класом, множинне наслідування

  • Оголошення поведінки
  • Дефолтні методи
  • Реалізація декількох інтерфейсів
  • Проблема "ромба"
  • Порівняння абстрактних класів та інтерфейсів

Приведення типів, instanceof switch-expression

  • instanceof
  • Приведення типів (розширення та звуження)
  • switch expression, Enum

Особливості виклику конструкторів. Блок static

  • Процес створення об'єкту
  • Порядок виклику конструкторів
  • Порядок ініціалізації змінних

Як влаштований Object: equals, hashCode, clone, toString(). Immutable objects

  • Клас Object
  • Методи класу Object
  • mutable та immutable objects

Рекурсія

Знайомство з потоками (нитками, тредами): Thread, Runnable, start, sleep

  • Thread
  • Runnable
  • start
  • sleep
  • interrupt

Знайомство з потоками (нитками, тредами): synchronized, volatile, wait, notify.DeadLock

  • synchronized
  • volatile
  • join
  • wait, notify
  • Проблема DeadLock

Executors

  • ExecutorService
  • Патерн (шаблон) "фабричний метод"
  • Додавання задач до сервісу
  • Callable
  • Отримання результату: Future
  • Зупинка ExecutorService
  • FixedThreadPool
  • CachedThreadPool
  • ScheduledExecutorService

ThreadLocal, Callable, Future

  • ThreadLocal контекст
  • ThreadLocalRandom

Внутрішні/вкладені класи, приклади: Map.Entry

  • Вкладені класи
  • Внутрішні класи
  • Внутрішні статичні класи
  • Внутрішні анонімні класи
  • Приклади різних типів класів з JDK

Серіалізація JSON/XML/YAML

  • java серіалізація
  • Формати даних xml, json, yaml
  • jackson ObjectMapper

Reflection API

  • Для чого потрібен Reflection API
  • Отримання даних: класу, метода, конструктора, поля
  • Створення об'єкту
  • Зміна внутрішнього стану об'єкту
  • Проксі
  • RMI

Анотації в Java

  • Декларативний та імперативний підхід до написання коду
  • Популярні анотації: @Deprecated, @Override, @Nullable
  • Створення анотацій
  • Обробка анотацій у рантаймі

Факультатив

Робота зі Swing.

Sockets

  • Socket
  • ServerSocket
  • live coding: написання примітивного чату для групи

Підсумковий проєкт

Java professional

Збирання сміття та типи посилань у Java

  • Пам'ять JVM: stack і heap
  • CG: Serial, Parallel, CMS, G1, Shenandoah, ZGC
  • Кеш
  • WeakReference, SoftReference, PhantomReference

Патерни проєктування

  • Поведінкові:
    • ланцюжок обов'язків
    • команда
    • ітератор
    • посередник
    • знімок
    • спостерігач
    • стан
    • стратегія
    • відвідувач
    • шаблонний метод
  • Породжувальні:
    • прототип
    • будівельник
    • сінглтон
    • абстрактна фабрика
    • фабричний метод
  • Структурні:
    • декоратор
    • компонувальник
    • фасад
    • адаптер
    • проксі (замісник)

Методології розробки

  • waterfall
  • v-model
  • incremental
  • RAD model
  • agile
  • iterative
  • spiral

Основи Maven. Встановлення Maven, керування залежностями, види Maven-репозиторіїв, збирання Java-проєкту

  • Завантаження, прописування змінних оточення
  • Створення maven-проєкту
  • Залежності
  • Плагіни
  • Фази (lifecycle)
  • Профілі
  • Білд артефактів

Досвід роботи з Guava, Apache Commons Collections

  • Multimap, BiMap
  • Multiset
  • Незмінні колекції
  • Objects: hashCode, equals
  • Throwables
  • CollectionUtils
  • StringUtils

JUnit

  • Для чого потрібне тестування
  • Типи тестування
  • @Test
  • @Before, @After
  • @BeforeClass, @AfterClass
  • Параметризовані тести

Mockito

  • Моки
  • mock і spy
  • when і thenReturn
  • verify
  • any, once, times

Логування

  • Для чого потрібні логи
  • Рівні логування
  • slf4j
  • Реалізації: log4j, JUL, logback, common-loggins
  • Аппендери

Як влаштована мережа. Мережева модель

  • Топологія мережі
  • Модель OSI
  • DNS

Архітектура ПЗ. Клієнт-серверна архітектура та її складові, трирівнева архітектура, архітектурні шаблони

  • Клієнт-серверна архітектура
  • Трирівнева архітектура (клієнт-сервер-БД)
  • Критерії вдалої архітектури:
    • ефективність
    • гнучкість
    • розширюваність
    • масштабованість
    • зручність тестування
    • зрозумілий та легкий для читання код
  • Модульна архітектура, декомпозиція

Протоколи HTTP/HTTPS. Протокол передачі даних, HTTP-запити та відповіді, відмінності HTTP та HTTPS. Cookies, Session

  • Протоколи передачі даних в мережі
  • http методи (GET, POST, PUT)
  • Параметри запитів
  • Тіло запиту
  • Хедери
  • Коди відповідей
  • http VS https
  • http сессії
  • Кукі
  • http/2

HttpClient

  • AJAX
  • java http client
  • Синхронні та асинхронні запити
  • Задача на отримання даних з інтернету (наприклад, прогноз погоди)

Сервлети, Java servlet API. Пишемо простий вебзастосунок

  • Що таке сервлет
  • Життєвий цикл
  • Сервлет-контейнер Tomcat
  • doGet, doPost
  • redirect VS forward
  • Фільтри

Контейнери сервлетів: Tomcat, розгортання додатку, налаштування сервера

Практика з теми попередньої лекції.

Знайомство з MVC (Model-View-Controller). JSP

  • Набір архітектурних принципів та ідей MVC
  • Схеми MVC
  • MVC у вебі
  • Типова помилка: бізнес-логіка в контролері
  • MVC на прикладі задачі
  • JSP

Вебсервіс

  • Що таке вебсервіс
  • Протоколи http, jms, ftp
  • Синхронні та асинхронні запити
  • Хмарні сервіси: IaaS, PaaS, SaaS (що завгодно як сервіс)

HTML-факультатив

  • Що таке HTML
  • Структура HTML-документа
  • Теги та їхні атрибути
  • CSS, його синтаксис
  • Класи та ідентифікатори
  • Селектори

Підсумковий проєкт. Servlet-quest конкурс

Написати на сервлетах текстову покрокову гру-квест.

Работа з базами даних. Hibernate.

Вступ до баз даних. Встановлення СУБД (MySQL). ddl, dml

  • Для чого потрібні БД
  • Реляційні та нереляційні БД
  • Реляційна модель
  • CAP теорема
  • Встановлення MySQL developer
  • Групи SQL (ddl, dml, dcl, tcl)

Типи даних. Створення таблиці. Написання insert, select, update, delete

  • Створення схеми
  • Створення таблиць
  • Зміна структури таблиць
  • insert
  • select
  • update
  • delete

Вибір даних

  • select з умовою
  • Перелік даних, що обираються
  • subselect
  • join: left, right, inner, cross
  • group by та агрегатні функції
  • index

Транзакції БД

  • Концепції ACID (Atomicity, Consistency, Isolation, Durability)
  • Управління транзакціями
  • Рівні ізоляції даних

Проєктування баз даних

  • Перша нормальна форма
  • Друга нормальна форма
  • Третя нормальна форма
  • Ключі (foreign key)
  • Відношення: one to, many to

JDBC 1

  • Для чого потрібен
  • Основні інтерфейси
  • Отримання даних у додатку з БД
  • Оновлення та видалення даних у додатку з БД

JDBC 2

  • Транзакції
  • Рівні ізоляції
  • Обробка checker винятків

ORM. Hibernate

  • Нестиковки об'єктної та реляційної моделей даних
  • ORM (Hibernate), JPA
  • Архітектура Hibernate
  • Конфігурація, основні анотації
  • Отримання даних у додатку з БД
  • Оновлення та видалення даних у додатку з БД
  • Hibernate VS JDBC

Hibernate. OneTo, ManyTo

Відносини (робота з колекціями).

Наслідування Entity for ORM

  • Одна таблиця для кожного класу
  • Одна таблиця для кожного класу з предками
  • Єдина таблиця для всієї ієрархії класів
  • Одна таблиця для кожного класу з використанням з'єднань (join)

Підсумковий проєкт

hash for passwords.

Spring + Spring Boot

IoC, DI. Spring. Components. Beans

  • Чому Spring став де-факто стандартом галузі (переваги)
  • Принципи IoC і DI
  • Бін
  • Контекст (ApplicationContext)
  • AOP

Spring modules general. Spring Web MVC

  • core (beans, core, context, SpEL)
  • data access
  • testing
  • web
  • integration
  • web mvc

Проєктування REST API

  • Оперування ресурсами, а не методами
  • http методи
  • http коди відповідей
  • Помилки
  • Запит колекції
  • Запит кількості об'єктів у колекції
  • Запит об'єкта коллекції
  • Додавання даних у колекцію
  • Редагування
  • Видалення
  • Домашнє завдання: спроєктувати 2-ранговий REST API

App controller-service-dao

  • Ієрархія контекстів
  • servlet config
  • Контролер - прийом запиту
  • Сервіс - бізнес-логіка
  • dao - зберігання стану

Spring ORM. @Transaction

  • Абстракція "транзакція"
  • Декларативні транзакції
  • transaction propagation
  • Переваги ORM + Spring
  • Налаштування hibernate SessionFactory
  • live coding example

Spring Test. AOP (logging)

  • unit testing
  • integration testing
  • Основні анотації
  • TestContext
  • live coding example (тестування API-метода або пари методів)
  • spring commons logging bridge

Spring Security (memory, DB)

  • Ключові об'єкти контексту spring security:
    • SecurityContextHolder
    • Authentication
    • UserDetails
    • GrantedAuthority
  • Авторизація та аутентифікація
  • OAuth2
  • Сесії в пам'яті
  • Сесії в БД

Spring Boot. Spring JPA

  • Стартери
  • Автоконфігурація
  • Вбудований tomcat
  • Анотації конфігурації
  • Демонстрація spring data jpa (генерація запиту за назвою метода в рантаймі)

Особливості курсу

  • Заняття у невеликих групах
  • Постійна підтримка ментора
  • Великі курсові проєкти для портфоліо
  • Можливі додаткові факультативи за запитом студентів
  • Диплом після закінчення навчання
  • Допомога у працевлаштуванні (складання резюме, навички самопрезентації, тестові співбесіди)

Викладачі курсу

  • Василь Малік - Team lead команди програмістів JavaRush
  • Володимир Крохмалюк - Software engineer
  • Вадим Новаковський - Senior Java Software Engineer
  • Олександр Чорноус - Software Engineer, Full Stack Developer
  • Валерій Попов - Java Team Lead
  • Роман Прищепа - Java Developer
  • Павло Плинько - Java Developer

Категории курса

Читайте нас в Telegram, чтобы не пропустить анонсы новых курсов.

Похожие курсы

Учебный центр
Okten School
Формат
Online
Начало обучения
Будь-який момент
Длительность
-
Уровень
Для опытных
Язык обучения
Ukrainian
Стоимость
10 000 UAH за курс
Учебный центр
SoftServe Academy
Формат
Online
Начало обучения
17.11.2025
Длительность
9 недель
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
12 199 UAH за курс
Учебный центр
Джун IT Academy
Формат
Online
Начало обучения
Будь-який момент
Длительность
-
Уровень
Для детей, Для начинающих
Язык обучения
Ukrainian
Стоимость
уточняйте
Учебный центр
Sigma Software University
Формат
Online
Начало обучения
Дата формується
Длительность
6 недель
Уровень
Для опытных
Язык обучения
Ukrainian
Стоимость
6 000 UAH за курс