Java中Buffer缓冲区的ByteBuffer类详解
ByteBuffer类
ByteBuffer类内部封装了一个byte[]数组,并可以通过一些方法对这个数组进行操作。
创建ByteBuffer对象的三种方式
//方式一:在堆中创建缓冲区: public static ByteBuffer allocate(intcapacity) // 方式二: 在系统内存创建缓冲区: public static ByteBuffer allocatDirect(int capacity) // 方式三:通过数组创建缓冲区: public static ByteBuffer wrap(byte[] arr)
添加数据-put
public ByteBuffer put(byte b); //向当前可用位置添加数据。 public ByteBuffer put(byte[] byteArray); // 向当前可用位置添加一个byte[]数组 public ByteBuffer put(byte[] byteArray,int offset,int len); // 添加一个byte[]数组的一部分
容量-capacity
Buffer的容量(capacity)是指:Buffer所能够包含的元素的最大数量。定义了Buffer后,容量是不可变的
public final int capacity();//获取缓冲数组的容量
限制-limit
限制limit是指:第一个不应该读取或写入元素的index索引。缓冲区的限制(limit)不能为负,并且不能大于容量。 有两个相关方法:
public int limit()://获取此缓冲区的限制。 public Buffer limit(int newLimit)://设置此缓冲区的限制
位置-position
位置position是指:当前可写入的索引。位置不能小于0,并且不能大于"限制"。
结论: 操作缓冲数组,其实就是操作position到limit之间位置上的元素 有两个相关方法:
public int position()://获取当前可写入位置索引。 public Buffer position(int p)://更改当前可写入位置索引。
标记-mark
标记mark是指:当调用缓冲区的reset()方法时,会将缓冲区的position位置重置为该标记的索引。
相关方法:
public Buffer mark();//设置此缓冲区的标记为当前的position位置。 public Buffer reset();//将此缓冲区的位置重置为以前标记的位置。
其它方法
public Buffer clear();//还原缓冲区的状态。
- 将position设置为:0
- 将限制limit设置为容量capacity;
- 丢弃标记mark。
public Buffer flip();//缩小limit的范围。
- 将limit设置为当前position位置;
- 将当前position位置设置为0;
- 丢弃标记
到此这篇关于Java中Buffer缓冲区的ByteBuffer类详解的文章就介绍到这了,更多相关Java的ByteBuffer类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
minio的下载和springboot整合minio使用方法
本文介绍了如何通过Docker拉取MinIO镜像,并创建MinIO容器的过程,首先,需要在本地创建/data和/conf两个目录用于挂载MinIO的数据和配置文件,接下来,通过docker run命令启动容器,设置MinIO的访问端口、用户名、密码等信息,感兴趣的朋友一起看看吧2024-09-09spring boot实战教程之shiro session过期时间详解
这篇文章主要给大家介绍了关于spring boot实战教程之shiro session过期时间的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-10-10将Java的List结构通过GSON库转换为JSON的方法示例
GONS是Google在GitHub上开源的Java类库,提供各种Java对象和JSON格式对象之间的转换功能,将Java的List结构通过GSON库转换为JSON的方法示例2016-06-06
最新评论