Buffer在JDK中的基本说明

Buffer(缓冲区)是一个用于特定基本类型数据的容器。

Buffer是特定基本类型元素的线性有限序列。除内容外,Buffer的基本属性还包括capacity(容量)、limit(限制)和position(位置):

缓冲区的capacity是它所包含的元素的数量。缓冲区的容量不能为负并且不能更改。

缓冲区的limit是第一个不应该读取或写入的元素的索引。缓冲区的限制不能为负,并且不能大于其容量。

缓冲区的position是下一个要读取或写入的元素的索引。缓冲区的位置不能为负,并且不能大于其限制。

对于每个非 boolean 基本类型,此类都有一个子类与之对应。

不变式

标记、位置、限制和容量值遵守以下不变式:

0 <= mark <= position <= limit <= capacity

新创建的缓冲区总有一个 0 position 和一个未定义的mark 。初始limit 可以为 0,也可以为其他值,这取决于缓冲区类型及其构建方式。一般情况下,缓冲区的初始内容是未定义的。

清除、反转和重绕

除了访问位置、限制、容量值的方法以及做标记和重置的方法外,此类还定义了以下可对缓冲区进行的操作:

  • clear() 使缓冲区为一系列新的通道读取或相对放置 操作做好准备:它将limit设置为容量大小,将position设置为 0。

  • flip() 使缓冲区为一系列新的通道写入或相对获取 操作做好准备:它将limit设置为当前位置,然后将position设置为 0。

  • rewind() 使缓冲区为重新读取已包含的数据做好准备:它使limit保持不变,将position设置为 0。





原文地址:https://www.cnblogs.com/laiyubin/p/2681483.html