Java的I/O演进

Java的I/O演进教程

JDK 1.4 之前,基于 Java 的所有 Socket 通信都采用了同步阻塞的模式,也就是我们所说的 BIO 模式。这种模式不适合并发量比较大的应用。在 JDK 1.4 版本以及之后的版本中 JDK 提供了新的 NIO 类库,它可以支持非阻塞 I/O 了。

Java的I/O演进

  1. jdk1.0 到 jdk1.3,只提供 BIO
  2. jdk1.4 新增 java.nio 包,提供了 NIO 开发的 API 和类库,主要类和接口:
    • 进行异步 I/O 操作的缓冲区 ByteBuffer 等
    • 进行异步 I/O 操作的管道 Pipe
    • 进行各种 I/O(异步或同步)的 Channel,包括 ServerSocketChannel 和SocketChannel
    • 多种字符集的编码能力和解码能力
    • 实现非阻塞 I/O 操作的多路复用器 selector
    • 基于流行的 Perl 实现的正则表达式类库
    • 文件通道 FileChannel
  3. jdk1.7 将原来的 NIO 类库升级,主要改进三个方面:
    • 提供能够批量获取文件属性的 API,这些 API 具有与平台无关性,不与特性文件系统相耦合
    • 提供 AIO 功能,支持基于文件的异步 I/O 操作和针对网络套接字的异步操作
    • 完成通道功能,包括对配置和多播数据报的支持

Java的I/O演进总结

本章我们主要了解到了 Java 语言对 I/O 功能的演进版本,每个版本里面对 I/O 做了哪些操作。