面试造飞机系列-NIO

Java NIO 概述

2020-06-02  本文已影响0人  Chermack

说明:本系列是根据尚硅谷NIO视频(讲师:李贺飞)所作课程笔记

一、简介

Java NIO(New IO Non Blocking IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO由同样的作用和目的,但是使用方式完全不同。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。NIO 与 IO的主要区别如下表:

Java NIO与IO的主要区别

面向流与面向缓冲区的区别

所谓的流,就像现实中的水流。首先建立一根传流的管道,用于传输字节数据。传统的IO是单向的,要么是输入流,要么是输出流。

传统的字节流传输

而NIO采用通道,类似于铁路,本身不能用于传输,而是用于连接需要传输数据的两端。实际传输数据时需要采用缓冲区,类似于火车,在通道之间传递数据,是一个双向的过程。

NIO面向缓冲区的传输

阻塞IO(Blocking IO)与非阻塞式IO(Non Blocking IO)、选择器(Selectors)

这三个概念与网络编程通信相关,将在后续文章中进行内容的补充。

通道和缓冲区

Java NIO系统的核心在于:通道(channel)和缓冲区(Buffer)。通道表示打开到IO设备(例如:文件、套接字)的连接。若需要使用NIO系统,需要获取用于连接IO设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对数据进行处理。

简而言之,Channel负责传输,Buffer负责存储

参考

https://www.bilibili.com/video/BV14W411u7ro

上一篇下一篇

猜你喜欢

热点阅读