通过本文可以获得如下知识:
① 图解NIO Buffer中的capacity、position、limit的含义。
② 一个Java demo程序演示三者的变化关系。
③ Buffer常用方法。
我们知道Java NIO 由以下三个核心部分组成:
- Channel(通道)
- Buffer(缓冲区)
- Selector(选择器)
在编写NIO程序时,我们对数据的实际操作都是通过Buffer来进行的,经常会用到java.nio.Buffer
中的flip()
方法。
本文会通过NIO程序实例来讲解flip方法以及limit、position、capacity三个成员变量。
一、Buffer
我们使用 Buffer 与 Channel 交互,数据从Channel读入Buffer,或从Buffer写入到Channel中。
缓冲区的本质是一个可以写入数据的内存区域,之后可以读取数据。 Buffer 对象包装了此内存区域,并提供了一组方法,可以更轻松地使用内存块。
1.1 Buffer的几个重要成员变量
-
capacity : 指定了可以存储在缓冲区中的最大数据容量,实际上