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

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • Проблеми продуктивності IO: вузькі місця

    JAVA 25 SELF
    41 рівень, 0 лекція
    Ця лекція про те, що таке «вузьке місце» у ввід‑виводі та як його виявляти й усувати. Розберемо, чому операції диска й мережі значно повільніші за RAM, які антипатерни часто трапляються (читання по одному байту через read(), синхронне логування тощо), як допомагають буфери ( BufferedInputStream, BufferedReader), профайлери ( VisualVM, JProfiler) і вимірювання часу через System. currentTimeMillis (). Проведемо практичний експеримент із читанням файлу "bigfile.txt", порівняємо швидкість із буфером і без, подивимося на вплив SSD/HDD і мережі та перелічимо типові помилки.
    Відкрита
  • Канали NIO та ByteBuffer

    JAVA 25 SELF
    41 рівень, 1 лекція
    Практичний вступ до неблокувального введення-виведення Java NIO: розбираємося, чим канали Channel і буфери ByteBuffer відрізняються від потоків InputStream/ OutputStream, як читати й записувати за допомогою FileChannel, позиціонуватися через position()/ truncate(), працювати з параметрами буфера ( capacity, limit, position, mark) і обирати між allocate() та allocateDirect(). Показано операції zero-copy transferTo()/ transferFrom() і типові помилки на кшталт забутого flip() та неправильного режиму буфера.
    Відкрита
  • Великі файли: патерни chunking

    JAVA 25 SELF
    41 рівень, 2 лекція
    Як ефективно обробляти файли розміром у десятки гігабайтів без OutOfMemoryError: розбиваємо на шматки (chunks), читаємо за позиціями через RandomAccessFile і FileChannel, розпаралелюємо завдання за допомогою ExecutorService/ ForkJoinPool, а для простого копіювання використовуємо zero-copy через transferTo/ transferFrom. Розбираємо вибір розміру шматка, межі рядків, синхронізацію результатів і типові помилки.
    Відкрита
  • Робота з великими файлами: chunking, memory mapping

    JAVA 25 SELF
    41 рівень, 3 лекція
    Як безпечно й швидко обробляти величезні файли в Java: читаємо частинами (chunking) через потоки та буфери, налаштовуємо розмір буфера для продуктивності, використовуємо відображення файлу в пам’ять через MappedByteBuffer і FileChannel для надшвидкого довільного доступу. Розберемо плюси й мінуси memory mapping, рекомендації щодо ресурсів і паралельності, а також типові помилки (наприклад, OutOfMemoryError, забуті дескриптори, перекриття чанків під час пошуку).
    Відкрита
  • Архіви/стиснення: java.util.zip

    JAVA 25 SELF
    41 рівень, 4 лекція
    Практична лекція з роботи з архівами та стисненням у Java: знайомимося з пакетом java.util.zip, потоками ZipInputStream/ ZipOutputStream і класом довільного доступу ZipFile, керуємо рівнями стиснення через Deflater ( 0– 9, DEFAULT_COMPRESSION), працюємо з GZIPInputStream/ GZIPOutputStream для одиночних файлів, пакуємо/розпаковуємо директорії за допомогою Files.walk і фільтрації за PathMatcher ( "glob:**/*.txt"). Обговоримо безпеку: захист від Zip Slip через нормалізацію шляху та контроль обсягу для Zip Bomb, а також зберемо міні-CLI «zip/unzip» з масками.
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush