Этот мини‑курс раскрывает практические основы неблокирующего сетевого взаимодействия в Java и помогает разработчикам уверенно работать с Java IO и Java NIO, понимая их различия, преимущества и ограничения.
О чем этот мини‑курс
Курс пошагово показывает эволюцию подходов к работе с сетевыми соединениями в Java — от классического Java.IO до современных неблокирующих моделей, построенных на Java.NIO и Selector API.
Почему это важно
Неблокирующий ввод‑вывод позволяет масштабировать серверы без чрезмерной нагрузки на ЦП.
Java.NIO — основа высокопроизводительных приложений и фреймворков.
Понимание принципов I/O повышает компетентность при работе с сетевыми протоколами.
Структура изучения
1. Погружение в классический Java.IO
Вы начнете с изучения традиционного блокирующего ввода‑вывода, написав три разных сервера и разобрав внутреннюю механику потоков и сокетов.
2. Переход к Java.NIO
Курс объясняет, почему Java.NIO — это «новый ввод‑вывод», а не только «неблокирующий». Сначала вы создадите сервер на Java.NIO в блокирующем режиме, чтобы увидеть фундаментальные отличия API.
3. Неблокирующая модель: от простого к эффективному
Неблокирующий сервер с polling
Вы напишете сервер, который активно опрашивает состояние сокетов. Такой подход быстрее классического блокирования, но может быть ресурсоемким.
Неблокирующие серверы с Selector
Вы создадите два варианта серверов, использующих Selector — ключевой инструмент Java.NIO, позволяющий обрабатывать множество соединений с минимальным использованием ресурсов.
Чему вы научитесь
Понимать различия между блокирующим и неблокирующим I/O.
Создавать серверы на Java.IO и Java.NIO.
Работать с Selector и каналами.
Разбирать причины высоких или низких нагрузок на ЦП.
Строить эффективные сетевые компоненты для собственных приложений.
Для кого подходит курс
Разработчиков Java уровня middle+.
Инженеров, работающих с высоконагруженными сервисами.
Тех, кто хочет глубже понять низкоуровневые механизмы Java.
Результат прохождения
По завершении мини‑курса вы сможете самостоятельно писать блокирующие и неблокирующие серверы, уверенно работать с сокетами и использовать Java.NIO для создания масштабируемых сетевых приложений.
Урок 1.00:02:13
Welcome to the Transmogrifier!
Урок 2.00:05:21
2.1 Single-Threaded Blocking Server
Урок 3.00:03:32
2.2 Single-Threaded Blocking Server Exercises
Урок 4.00:06:35
2.3 Single-Threaded Blocking Server Exercise Solutions
Урок 5.00:02:27
3.1 Multi-Threaded Blocking Server
Урок 6.00:06:00
3.2 NastyChump DoS Attack
Урок 7.00:01:23
3.3 Refactor to Decorator Pattern Exercises
Урок 8.00:16:38
3.4 Refactor to Decorator Pattern Exercise Solution
Урок 9.00:09:12
3.5 Extracting Common Decorator Abstract Class
Урок 10.00:02:32
4.1 ExecutorService Blocking Server
Урок 11.00:08:56
4.2 ExecutorService Exception Handling
Урок 12.00:04:27
4.3 Cached vs Fixed Executor Service
Урок 13.00:01:37
4.4 ExecutorService Blocking Server Exercises
Урок 14.00:20:42
5.1 Java.NIO Blocking Server
Урок 15.00:09:31
6.1 Single Threaded Polling Non-Blocking Java.NIO Server
Урок 16.00:00:38
6.2 Polling Non-Blocking Server Exercises
Урок 17.00:03:07
7.1 Single-Threaded Selector-Based Non-Blocking Server
JavaSpecialists был основан в 1998 году, чтобы предлагать экспертные консультации по Java и контрактные услуги. В 1999 году мы начали преподавать курс практического обучения Брюса Экеля в Кейптауне, Южная Африка. Позже в 1999 году нас попросили предложить консалтинговые услуги компании ERP в Германии. В 2000 году мы начали публиковать информационный бюллетень специалистов по Java ™. В 2001 году мы начали писать и преподавать наши собственные курс