1.NIO的简介
java.nio 全称 java non-blocking IO 是jdk1.4之后出现的 New IO
为所有的原始类型(boolean除外)提供了缓存支持
使用它 可以提供非阻塞式的高伸缩性网络
NIO由三个核心部分组成
Channel 管道/通道
Buffer 缓冲区
Selector 选择器
普通IO NIO
面向流 面向缓冲区
阻塞IO 非阻塞
没有选择器 选择器Selector
阻塞和非阻塞:
阻塞:
Scanner sc = new Scanner(System.in)
int i = sc.nextInt();
阻塞是强调运行结果
在返回之前 当前线程会被挂起 一直处于等待状态
不能执行其他任务
函数只有在得到结果之后 才会返回
阻塞式IO 指的是
"一旦输入/输出工作没有完成 则程序阻塞 直到输入/输出完成为止"
不见黄河不死心
非阻塞:
非阻塞和阻塞的概念是相对应的
非阻塞IO其实并非完全非阻塞
通常情况下 都是通过设置超时来读取数据的
未超时之前 程序阻塞
超时之后 程序结束
Buffer:
缓冲区 本质上是一块可以存储数据的内存
把这块区域封装成了一个Buffer对象
Java NIO中涉及到的Buffer实现:
1.ByteBuffer
2.CharBuffer
3.DoubleBuffer
4.FloatBuffer
5