Буфферы. Временные хранилища фиксированного размера для транспортируемых данных. Именно буферизация – основное отличие неблокирующего чтения от
java.io
. Каналы. Реализации интерфейса
Channel
– сущности, представляющие соединения между разными участниками ввода-вывода (файлы, сокеты, консоль).Селекторы. Наследники класса
Selector
. «Мультиплексоры» каналов – комбинируют несколько каналов в один. Регистрация канала в селекторе возвращает SelectionKey
, который содержит ссылку на сам канал, и ряд его атрибутов. Селектор позволяет выбрать из набора зарегистрированных каналов подмножество готовых к работе, при необходимости блокируя выполнение на время ожидания. Каналы и селекторы располагаются в пакете java.nio.channels
. Полный пример использования селекторов можно найти в статье на baeldung.Кодировки. Charset – то, как бинарные данные будут конвертироваться в родные для Java символы UTF-16 и обратно. Классы для работы с кодировками хранятся в пакете
java.nio.charset
.