java nio 缓冲区基础

来源:互联网 发布:include c语言 编辑:程序博客网 时间:2024/06/05 08:30
属性
所有的缓冲区都具有四个属性来提供关于其所包含的数据元素的信息。它们是:
容量(Capacity)
缓冲区能够容纳的数据元素的最大数量。这一容量在缓冲区创建时被设定,并且永远不能
被改变。
上界(Limit)
缓冲区的第一个不能被读或写的元素。或者说,缓冲区中现存元素的计数。
位置(Position)
下一个要被读或写的元素的索引。位置会自动由相应的 get( )和 put( )函数更新。
标记(Mark)
一个备忘位置。调用 mark( )来设定 mark = postion。调用 reset( )设定 position =
mark。标记在设定前是未定义的( undefined) 。
这四个属性之间总是遵循以下关系:
0 <= mark <= position <= limit <= capacity
让我们来看看这些属性在实际应用中的一些例子。图 2-2 展示了一个新创建的容量为 10
的 ByteBuffer 逻辑视图。

图 2-2. 新创建的 ByteBuffer




位置被设为 0,而且容量和上界被设为 10,刚好经过缓冲区能够容纳的最后一个字节。
标记最初未定义。容量是固定的,但另外的三个属性可以在使用缓冲区时改变。
0 0