Хотите наконец разобраться в том, как работает Java IO и неблокирующий ввод‑вывод? Этот курс проведет вас по всем этапам — от классического Java.IO до современных возможностей Java.NIO и ключевых шаблонов проектирования.
Что вы изучите в этом курсе
Курс построен так, чтобы дать вам практическое понимание ввода‑вывода в Java, начиная с базовых концепций и переходя к продвинутым техникам неблокирующей обработки сокетов.
Переход от Java.IO к Java.NIO
Вы узнаете, как работает «старый» Java.IO, и на практике создадите три варианта серверов, чтобы понять ключевые ограничения блокирующего ввода‑вывода.
Понимание архитектуры Java.NIO
Многие думают, что NIO означает только «неблокирующий ввод‑вывод», но это не так. Вы начнете с примера блокирующего сервера на Java.NIO, чтобы увидеть реальные отличия и преимущества нового API.
Практическое создание разных типов серверов
Пошаговое написание серверов — основа курса. Вы не просто слушаете, вы создаете всё своими руками.
Неблокирующий сервер с опросом
Вы построите неблокирующий сервер, который использует механизм polling: он позволяет подключать больше клиентов, но требует ресурсов процессора. Это важный этап для понимания эволюции архитектуры.
Серверы с Selector
Затем вы реализуете два разных варианта неблокирующих серверов на основе Selector, который реагирует на события в сокетах и эффективно распределяет ресурсы.
Навыки, которые вы получите
- понимание принципов блокирующего и неблокирующего IO;
- создание серверов на Java.IO и Java.NIO;
- умение работать с SocketChannel, ServerSocketChannel и Selector;
- понимание шаблонов проектирования, применяемых при проектировании IO‑систем;
- навыки, необходимые для разработки собственных сетевых приложений.
Для кого этот курс
Этот мини‑курс идеально подходит разработчикам, которые хотят:
- разобраться в устройстве Java.IO и Java.NIO;
- научиться писать высокопроизводительные сетевые приложения;
- закрепить знания через практику и примеры;
- понять основы реактивных и асинхронных технологий в Java.
Итог
Пройдя курс и реализовав все серверы собственными руками, вы получите четкое и практическое понимание того, как работает ввод‑вывод в Java, и сможете уверенно использовать как блокирующие, так и неблокирующие подходы при разработке.