BIO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
当服务端和客户端交互时,如果服务端接收了一个客户端请求,就要为这个客户端一直服务直到结束,否则无法为下一个客户端服务,BIO 就属于同步阻塞 IO。
NIO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
NIO 是 Java 1.4 引入的,相对于传统的 IO 来说,N 可以代表 New 的意思,表示新 IO,但更为具体的理解是 Non-blocking 的意思,是一种同步非阻塞的 IO 模型。它提供了 Buffer,Channel,Selector 三大组件。
AIO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。
JDK1.7 中,java.nio.channels 包下增加了多个异步通道,是 NIO 的升级版本,实现 AIO AsynchronousIO 的异步非阻塞 IO 模型。