Channels and Buffers(通道和缓冲区)html
标准的IO基于字节流和字符流进行操做的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操做,数据老是从通道读取到缓冲区中,或者从缓冲区写入到通道中。java
Selectors(选择器)git
Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(好比:链接打开,数据到达)。所以,单个的线程能够监听多个数据通道。github
Non-blocking IO(非阻塞IO)编程
Java NIO能够让你非阻塞的使用IO,例如:当线程从通道读取数据到缓冲区时,线程仍是能够进行其余事情。当数据被写入到缓冲区时,线程能够继续处理它。从缓冲区写入通道也相似。服务器
github NIOdemo地址:https://github.com/loveincode/StudyTest/tree/master/src/NIO并发
1 Java NIO 教程 6 Java NIO 通道之间的数据传输 11 Java NIO 非阻塞式服务器socket
2 Java NIO概述 7 Java NIO Selector 12 Java NIO DataGramChannelasync
3 Java NIO Channel 8 Java NIO FileChannel 13 Java NIO Pipepost
4 Java NIO Buffer 9 Java NIO SocketChannel 14 Java NIO 与IO
5 Java NIO Scatter / Gather 10 Java NIO ServerSocketChannel 15 Java NIO Path (待翻译)
16 Java NIO Files (待翻译)
17 Java NIO AsynchronousFileChannel (待翻译)
原文 并发编程网(翻译):http://ifeve.com/java-nio-all/ 源自 http://tutorials.jenkov.com/java-nio/index.html
JavaIO学习手册 : Java IO 学习总结 学习手册总结