ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### Buffer缓冲区 Buffer是一个对象,包含一些要写入或者要读出的数据;NIO库中所有数据都是用缓冲区处理; 缓冲区实际上是一个数组\(通常是一个字节数组ByteBuffer\); ByteBuffer缺点 ![](https://img.kancloud.cn/02/dd/02dd7827a21e547c9b7990934bb7788b_642x171.png) Buffer是所有具体缓存区的基类,是一个抽象类,它的实现类有很多,包含各种类型数据的缓存 * ByteBuffer * CharBuffer * ShortBuffer * IntBuffer * LongBuffer * FloatBuffer * DoubleBuffer * MappedByteBuffer ### Channel通道 channel是全双工的; ![](https://img.kancloud.cn/1b/3f/1b3f7f2f546dc639e902a43dfd3eef6d_721x111.png) 类图: ![](https://img.kancloud.cn/8f/6d/8f6db5ae060c9982249344d051db9e66_671x462.png) 基本的通道类型有如下一些: * FileChannel * DatagramChannel * SocketChannel * ServerSocketChannel FileChannel 是基于文件的通道,SocketChannel 和 ServerSocketChannel 用于网络 TCP 套接字数据报读写,DatagramChannel 是用于网络 UDP 套接字数据报读写; 通道不能单独存在,它永远需要绑定一个缓存区,所有的数据只会存在于缓存区中,无论你是写或是读,必然是缓存区通过通道到达磁盘文件,或是磁盘文件通过通道到达缓存区; ### Selector多路复用器 ![](https://img.kancloud.cn/b8/e3/b8e30f132229dddbc9b44571cdd6981f_666x80.png) ![](https://img.kancloud.cn/97/59/975924f2c1ef47d6cfab2ad409b7472b_673x115.png)