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

  • Online
  • Для начинающих
  • Java
Образовательный центр: JavaRush
Формат:Курс
Язык обучения:Ukrainian
Длительность обучения:12 месяцев
Начало курса:09.10.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, чтобы не пропустить анонсы новых курсов.

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

Учебный центр
Hillel IT school
Формат
Online
Начало обучения
12.12.2025
Длительность
43 занятий
Уровень
Для опытных
Язык обучения
Ukrainian
Стоимость
22 800 UAH за курс
Учебный центр
CyberBionic Systematics
Формат
Online
Начало обучения
29.10.2025
Длительность
12 часов
Уровень
Для опытных
Язык обучения
Ukrainian
Стоимость
3 030 UAH за курс
Учебный центр
IT-Столица
Формат
Online
Начало обучения
Будь-який момент
Длительность
10 занятий
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
5 800 UAH за курс
Учебный центр
Foxminded
Формат
Online
Начало обучения
Будь-який момент
Длительность
12 месяцев
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
61 775 UAH за курс