主要功能:提高I/O传输效率。
NIO模块简介:
1.缓冲区(Buffers):原始数据元素组成的固定长度数组,封装在包含状态信息的对象中,存入缓冲区。缓冲区提供了一个会合点:通道既可提取放在缓冲区中的数据(写),也可向缓冲区存入数据供读取(读)。此外,还有一种特殊类型的缓冲区,用于内存映射文件。
2.通道(channel):Channel 对象模拟了通信连接,管道既可以是单向的(进或出),也可以是双向的(进和出)。可以把通道想象成连接缓冲区和I/O 服务的捷径。
3.文件锁定和内存映射文件(File locking and memory-mapped files): 在多个进程协同工作的情况下,要协调各个进程对共享数据的访问,文件锁定是必不可少的工具。 将文件映射到内存,这样在您看来,磁盘上的文件数据就像是在内存中一样。这利用了操作系统的虚拟内存功能,无需在内存中实际保留一份文件的拷贝,就可实现文件内容的动态高速缓存。
4.套接字(socket):三个新套接字通道,即ServerSocketChannel、SocketChannel 和DatagramChannel 。
5.选择器(Selectors):选择器可实现就绪性选择。Selector 类提供了确定一或多个通道当前状态的机制。使用选择器,借助单一线程,就可对数量庞大的活动I/O 通道实施监控和维护。
6.正则表达式(Regular expressions):
7.字符集(Character sets): java.nio.charsets 提供了新类用于处理字符与字节流之间的映射关系。您可以对字符转换映射方式进行选择,也可以自己创建映射
---出自Ron Hitchens《Developing High Performance Applications》