缓冲区
缓冲区
其实是一个用来存储基本数据类型的一个容器, 类似于一个数组。
缓冲区, 可以按照存储的数据类型不同, 将缓冲区分为
:
ByteBuffffer
、
ShortBuffffer
、
IntBuffffer
、
LongBuffffer
、
FloatBuffffer
、
DoubleBuffffer
、
CharBuffffer
但是, 要注意,
并没有
BooleanBuffffer
capacity:
容量。 代表一个缓冲区的最大的容量, 缓冲区一旦开辟完成, 将无法修改。
limit:
限制。 表示缓冲区中有多少数据可以操作。
position:
位置。 表示当前要操作缓冲区中的哪一个下标的数据。
mark:
标记。 在缓冲区中设计一个标记, 配合
reset()
方法使用, 修改
position
的值。
mark <= position <= limit <= capacity
public class Demo2 {
public static void main(String[] args) {
/** 在创建buffer对象的时候传递的参数就是capacity
* 容量为1024的缓冲区
* 此时buffer的limit和capacity都为1024
* 此时的position是0 */
ByteBuffer buffer = ByteBuffer.allocate(1024);//开辟容量1024字节
System.out.println("position:"+buffer.position());//0
System.out.println("limit:"+buffer.limit());//1024
/** position是5,说明写入了5个字节,position指向的是当前内容的结尾,方便接 着往下写 */
buffer.put("hello".getBytes());
System.out.println(buffer.position());//5
System.out.println(buffer.limi