Встречается на собеседованиях • сегодня

На что ориентируется NIO

NIO (New Input/Output) в Java ориентируется на работу с буферами и каналами для эффективного ввода-вывода. В отличие от традиционного IO, который потоковый, NIO использует буферизацию и неблокирующие операции, что позволяет обрабатывать множество соединений в одном потоке.

Ключевые компоненты:

  • Буферы (Buffers) – хранят данные для чтения/записи.
  • Каналы (Channels) – обеспечивают двустороннюю передачу данных.
  • Селекторы (Selectors) – позволяют одному потоку мониторить несколько каналов.

Пример:

java
try (FileChannel channel = FileChannel.open(Paths.get("file.txt"), StandardOpenOption.READ)) {
    ByteBuffer buffer = ByteBuffer.allocate(1024);
    while (channel.read(buffer) > 0) {
        buffer.flip();  // Переключаем на чтение
        while (buffer.hasRemaining()) {
            System.out.print((char) buffer.get());
        }
        buffer.clear();  // Очищаем для следующего чтения
    }
} catch (IOException e) {
    e.printStackTrace();
}

NIO особенно полезен для высоконагруженных приложений, таких как серверы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы