更新时间:2023-02-14 来源:黑马程序员 浏览量:

从结构上来说,Buffer类似于一个数组,它可以保存多个类型相同的数据。从类型上来说,Buffer 是一个抽象类,其子类有 ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer 和 ShortBuffer,这些子类中最常用的是 ByteBuffer 和CharBuffer,其他则使用较少。
Buffer类的子类中并没有提供构造方法,因此不能通过构造方法来创建对象。要想创建Buffer 对象,通常会通过子类中的 static XxxBuffer
allocate(int capacity)方法来实现,其中Xxx表示不同的数据类型,而 capacity
表示容量,此方法的含义是创建一个容量为capacity的XxxBuffer对象。例如创建一个容量为6的CharBuffer对象的语句如下:
CharBuffer buffer =CharBuffer,allocate(6);
在学习 Buffer的使用之前,需要对 Buffer中的三个重要概念有所理解,这三个概念分别是 capacity(容量) limit(界限)和position(位置),其含义如下。Ocapacity(容量):缓冲区的容量表示该Buffer的最大数据容量,即最多可以存储多少数据。缓冲区的容量值不能为负数,也不能够改变。
limit(界限):表示Buffer 容器中不可被读取的区域的第一个索引,即位于Buffer容器中索引为0到limit之间的区域都可以进行读取操作。缓冲区的 limit 值从不为负,也从不大于其容量。
position(位置):用于指定下一个可以被读写的缓冲区位置索引。新创建的
Buffe对象,position的默认值为0,每进行一次读取或写人操作position的值都会自动向后移动一步。如果向 Buffer
缓冲区中执行8次写人操作,那么position的值为8,即指向 Buffer中的第9个元素的索引位置。在 Buffer类中,定义了很多方法,其常见方法如表所示:
除上表中的方法外,Buffer 的所有子类中都额外提供了 put()和 get()方法用于向hffer 中放人数据和取出数据。在使用 put()和 get()方法放入和取出数据时,Buffer 既支持单个数据的访问,也支持批量数据的访问。
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27