java.nio.Buffer源码是什么
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"java.nio.Buffer源码是什么",在日常操作中,相信很多人在java.nio.Buffer源码是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2026年11月01日java.nio.Buffer源码是什么
这篇文章主要介绍"java.nio.Buffer源码是什么",在日常操作中,相信很多人在java.nio.Buffer源码是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java.nio.Buffer源码是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
版本:JDK7
package java.nio;
public abstract class Buffer {
// mark <= position <= limit <= capacityprivate int mark = -1; // 标记,一个特定的position,通过mark()方法指定Buffer中的标记,之后可以通过reset()方法恢复到这个索引位置private int position = 0; // 下一个要读取或写入的数据的索引private int limit; // 界限,表示缓冲区中可操作数据的大小,索引等于和大于limit的数据不能进行读写。private int capacity; // 缓冲区的容量,创建后不能修改。// Used only by direct buffers// NOTE: hoisted here for speed in JNI GetDirectBufferAddresslong address;// Creates a new buffer with the given mark, position, limit, and capacity,Buffer(int mark, int pos, int lim, int cap) { if (cap < 0) throw new IllegalArgumentException("Negative capacity: " + cap); this.capacity = cap; limit(lim); position(pos); if (mark >= 0) { if (mark > pos) throw new IllegalArgumentException("mark > position: (" + mark + " > " + pos + ")"); this.mark = mark; }}public final int capacity() { return capacity;}public final int position() { return position;}// 重新设置position的值public final Buffer position(int newPosition) { if ((newPosition > limit) || (newPosition < 0)) throw new IllegalArgumentException(); position = newPosition; if (mark > position) mark = -1; return this;}public final int limit() { return limit;}// 重新设置limit的值:如果新limit小于position,则将position设为新limitpublic final Buffer limit(int newLimit) { if ((newLimit > capacity) || (newLimit < 0)) throw new IllegalArgumentException(); limit = newLimit; if (position > limit) position = limit; if (mark > limit) mark = -1; return this;}// 设置标记public final Buffer mark() { mark = position; return this;}// 将position的值设置为markpublic final Buffer reset() { int m = mark; if (m < 0) throw new InvalidMarkException(); position = m; return this;}// 清空缓冲区:Buffer的属性恢复到初始化状态。注意:此时缓冲区中的数据仍然存在。public final Buffer clear() { position = 0; limit = capacity; mark = -1; return this;}// 将limit设为当前的position,之后将position重置为0public final Buffer flip() { limit = position; position = 0; mark = -1; return this;}// 将position设为0,并取消设置的标记:即重新读Bufferpublic final Buffer rewind() { position = 0; mark = -1; return this;}// 返回剩余的可用空间public final int remaining() { return limit - position;}// 判断缓冲区中是否还有元素public final boolean hasRemaining() { return position < limit;}public abstract boolean isReadOnly();public abstract boolean hasArray();public abstract Object array();public abstract int arrayOffset();public abstract boolean isDirect();// -- Package-private methods for bounds checking, etc. --// ...}
到此,关于"java.nio.Buffer源码是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
缓冲区
缓冲
源码
数据
标记
学习
方法
索引
更多
帮助
实用
接下来
位置
元素
可以通过
大小
容量
属性
文章
版本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
手磨咖啡
中国互联网科技工作委员会毛军
盈实互联网科技
互联网科技未来
互联网 科技
互联网科技logo设计
狮子座互联网科技培训
互联网科技公司做什么
滨湖区互联网智能科技产品供应
茂名市互联网科技产业园
赶超互联网科技 微信多开
米聚互联网科技南京有限公司排面
宇信科技在杭州互联网排第几
风投北京互联网科技
广州互联网高科技取餐柜
北京军民互联网科技公司
互联网科技创新创业项目
互联网科技大会大佬
宁波允成互联网科技有限公司
互联网科技资迅
猫创互联网科技
互联网科技美容
广州慧亚互联网科技怎么样
中化能源互联网科技招聘
互联网科技公司实习生
呼和浩特新华互联网科技学院
长沙茂晟互联网科技有限公司
四川互联网展示科技馆设计
东营紫格互联网科技