JavaRush
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • module-info.java: синтаксис, створення модулів

    JAVA 25 SELF
    60 рівень, 1 лекція
    Розбираємо, що таке файл module-info.java, де він розташований у проєкті та як оголошувати модуль за допомогою ключового слова module. Навчаємося експортувати API через exports, підключати залежності через requires, а також розглядаємо додаткові директиви ( opens, uses, provides … with). У лекції — приклади, правила найменування модулів, практичний розбір структури проєкту та типові помилки під час модульного збирання.
    Відкрита
  • Інкапсуляція через модулі: експорт і імпорт

    JAVA 25 SELF
    60 рівень, 2 лекція
    Як Java 9+ додала модульну інкапсуляцію поверх класів і пакетів: навіть public-класи приховані, доки пакет явно не відкритий через exports у module-info.java. Розберімося, як підключати залежності за допомогою requires, як обмежувати видимість через exports to, чим рівень module відрізняється від private/ public, і які помилки компіляції (наприклад, «package ... is not visible», «cannot access ...») підкажуть, що ви забули про exports або requires.
    Відкрита
  • Розділення проєкту на модулі: найкращі практики

    JAVA 25 SELF
    60 рівень, 3 лекція
    Практичний посібник з модульної архітектури в Java: коли й навіщо ділити код на модулі, типові схеми (цибульна архітектура, поділ на api/ impl, тестові модулі), налаштування залежностей через module-info.java та ключові слова requires/ exports, робочі приклади проєкту, поділеного на три модулі, інтеграція з Maven/ Gradle та IntelliJ IDEA, а також розбір типових помилок (циклічні залежності, неекспортовані пакети, некоректний --module-path).
    Відкрита
  • Збирання багатомодульних проєктів: Maven, Gradle, IDEA

    JAVA 25 SELF
    60 рівень, 4 лекція
    Як зібрати модульний проєкт на Java: відмінність classpath від module-path, коли використовувати прапорець --module-path, як налаштувати багатомодульну структуру в Maven і Gradle, і як запускати усе з IntelliJ IDEA. Покажемо структуру модулів з module-info.java, залежності через requires/ exports, конфігурацію плагінів і часті помилки під час збирання.
    Відкрита
  • ProcessBuilder — запуск зовнішніх процесів

    JAVA 25 SELF
    61 рівень, 0 лекція
    Розбираємося, як із Java запускати зовнішні команди та утиліти за допомогою класу ProcessBuilder: чим він кращий, ніж Runtime. getRuntime(). exec(), як налаштовувати робочу директорію через directory(), змінні середовища через environment() і керувати процесом через start(), waitFor(), а також обробляти потоки getInputStream()/ getErrorStream()/ getOutputStream(). Обговоримо кросплатформність ( cmd.exe/ ls), роботу зі stdout/ stderr і типові помилки.
    Відкрита
  • Читання виводу процесу, робота зі stdin/stdout

    JAVA 25 SELF
    61 рівень, 1 лекція
    Практика роботи із зовнішніми процесами в Java: як читати stdout через Process.getInputStream(), перехоплювати помилки зі stderr через Process.getErrorStream(), писати у stdin за допомогою Process.getOutputStream(), а також використовувати зручні методи inputReader()/ errorReader()/ outputWriter(). Розберемо особливості команд на кшталт java -version, паралельне читання потоків, щоб уникнути deadlock’у, роботу з кодуваннями ( "UTF-8") і невеличкий місток із Python‑скриптами.
    Відкрита
  • Керування життєвим циклом процесу

    JAVA 25 SELF
    61 рівень, 2 лекція
    Практика керування зовнішніми процесами з Java: очікуємо завершення через waitFor() (включно з тайм-аутами), читаємо код повернення, коректно зупиняємо через destroy()/ destroyForcibly(), запобігаємо зависанням і «зомбі»-процесам, не забуваючи про потоки виведення та винятки. Розбираємо кросплатформні нюанси й типові помилки.
    Відкрита
  • Інтерактивна взаємодія з процесами

    JAVA 25 SELF
    61 рівень, 3 лекція
    У цій лекції розберемо, як із Java організувати «живий» діалог із зовнішніми програмами: писати в stdin, читати зі stdout і stderr, уникати взаємних блокувань ( deadlock), паралельно обробляти вивід за допомогою ExecutorService, коректно закривати потоки та керувати життєвим циклом Process через ProcessBuilder. Розглянемо приклади з інтерактивним скриптом на Python і утилітою bc, а також розберемо підводні камені буферизації та необхідність flush().
    Відкрита
  • Розбір типових помилок під час роботи з процесами

    JAVA 25 SELF
    61 рівень, 4 лекція
    Практичний гайд з надійної роботи із зовнішніми процесами в Java: як уникати зависань через непрочитані потоки stdout/ stderr, правильно налаштовувати кодування виведення (наприклад, UTF-8, CP866), враховувати кросплатформні відмінності команд ( ls vs dir), враховувати права доступу та опрацьовувати коди завершення через process.exitValue(), закривати ресурси без витоків і уникати інтерактивних взаємних блокувань. Розглядаємо грамотне використання ProcessBuilder, паралельне читання потоків (за допомогою потоків / ExecutorService), коректне завершення через process.destroy(), а також універсальні шляхи з File.separator.
    Відкрита
  • Вступ до рефлексії: клас Class, навіщо вона потрібна

    JAVA 25 SELF
    62 рівень, 0 лекція
    Розберемо, що таке рефлексія в Java і навіщо вона потрібна фреймворкам та інструментам, як працює об’єкт Class — серце рефлексії, і якими способами його отримати: через .class, getClass() і Class.forName(). Поговоримо, коли варто застосовувати рефлексію, а коли краще обійтися без неї, подивимося на приклади отримання метаданих (ім’я, пакет, суперклас, інтерфейси), розберемо мініутиліту «Що це за клас?» і типові помилки ( ClassNotFoundException, продуктивність, безпека).
    Відкрита
  • Отримання інформації про класи, поля, методи

    JAVA 25 SELF
    62 рівень, 1 лекція
    У цій лекції розглядаємо рефлексію в Java: як за допомогою Class-API отримати відомості про поля ( getFields()/ getDeclaredFields()), методи ( getMethods()/ getDeclaredMethods()), конструктори ( getConstructors()/ getDeclaredConstructors()) та анотації ( getAnnotations()). Дізнаємося модифікатори за допомогою Modifier ( public, private, protected, static, final), розберемо відмінності «public проти declared», зберемо міні-утиліту інспектора класів і переглянемо візуальну схему.
    Відкрита
  • Безпека, обмеження та альтернативи рефлексії

    JAVA 25 SELF
    62 рівень, 2 лекція
    У лекції розбираємо ризики та обмеження рефлексії: обхід інкапсуляції через setAccessible( true), спроби змінювати final-поля і чому це небезпечно через оптимізації JVM; долю SecurityManager та як модульна система (Java 9+) призводить до InaccessibleObjectException. Поговоримо про втрату продуктивності та типобезпеку, сучасні альтернативи ( record, sealed, pattern matching, APT, DI) та найкращі практики. Наприкінці — практичний приклад із параметром JVM --add-opens.
    Відкрита
  • 1
  • ...
  • 26
  • 27
  • 28
  • 29
  • 30
  • ...
  • 57
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush