Buffer(缓冲区)是一个用于特定基本类型数据的容器。
Buffer是特定基本类型元素的线性有限序列。除内容外,Buffer的基本属性还包括capacity(容量)、limit(限制)和position(位置):
缓冲区的capacity是它所包含的元素的数量。缓冲区的容量不能为负并且不能更改。
缓冲区的limit是第一个不应该读取或写入的元素的索引。缓冲区的限制不能为负,并且不能大于其容量。
缓冲区的position是下一个要读取或写入的元素的索引。缓冲区的位置不能为负,并且不能大于其限制。
对于每个非 boolean 基本类型,此类都有一个子类与之对应。
不变式
标记、位置、限制和容量值遵守以下不变式:
0 <= mark <= position <= limit <= capacity新创建的缓冲区总有一个 0 position 和一个未定义的mark 。初始limit 可以为 0,也可以为其他值,这取决于缓冲区类型及其构建方式。一般情况下,缓冲区的初始内容是未定义的。
清除、反转和重绕
除了访问位置、限制、容量值的方法以及做标记和重置的方法外,此类还定义了以下可对缓冲区进行的操作: