JavaRush
Акція
Університет
Java FullStack
Python FullStack
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