NIO与Socket编程技术指南
上QQ阅读APP看书,第一时间看更新

1.1 NIO概述

常规的I/O(如InputStream和OutputStream)存在很大的缺点,就是它们是阻塞的,而NIO解决的就是常规I/O执行效率低的问题。即采用非阻塞高性能运行的方式来避免出现以前“笨拙”的同步I/O带来的低效率问题。NIO在大文件操作上相比常规I/O更加优秀,对常规I/O使用的byte[]或char[]进行封装,采用ByteBuffer类来操作数据,再结合针对File或Socket技术的Channel,采用同步非阻塞技术实现高性能处理。现在主流的高性能服务处理框架Netty正是通过封装了NIO技术来实现的,许多第三方的框架都以Netty框架作为底层再进行封装。可以这样认为,想要成为一个合格的Java服务器程序员,NIO技术是必须要掌握的技能。本书也将NIO技术中核心类的API几乎进行了全部覆盖,以让读者全面地掌握NIO和Socket技术。

本章将介绍NIO技术中的核心要点:缓冲区(Buffer)。缓冲区在NIO的使用中占据了很高的地位,因为数据就是存放到缓冲区中,并对数据进行处理的。例如,进行CURD操作时,都是对缓冲区进行处理,也就是数据处理的正确与否与操作缓冲区的正确与否关系紧密。每种缓冲区都有自己独有的API,这些API提供的功能已经足够在大多数的场景下进行软件设计了。那么,我们就开始详细介绍吧!