Java NIO Buffer的flip、reset、mark、rewind、clear操作区别联系

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

0 <= 标记 <= 位置 <= 限制 <= 容量

 

 

 位置限制容量标记
 positionlimitcapcitymark
mark///position
resetposition///
clear0capcity/丢弃
flip0position//
rewind0///

 

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

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

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

 

 

(这部分是转载)

http://book.51cto.com/art/200902/109721.htm

表 5.4:在Buffer上创建不同透视的方法

方法

Capacity

新缓冲区的初始值

Position

Limit

Mark

ByteBuffer duplicate()

capacity

position

limit

mark

ByteBuffer slice()

remaining()

0

remaining()

未定义

ByteBuffer asReadOnlyBuffer()

capacity

position

limit

mark

CharBuffer asCharBuffer()

remaining()/2

0

remaining()/2

未定义

DoubleBuffer asDoubleBuffer()

remaining()/8

0

remaining()/8

未定义

FloatBuffer asFloatBuffer()

remaining()/4

0

remaining()/4

未定义

IntBuffer asIntBuffer()

remaining()/4

0

remaining()/4

未定义

LongBuffer asLongBuffer()

remaining()/8

0

remaining()/8

未定义

ShortBuffer asShortBuffer()

remaining()/2

0

remaining()/2

未

 

 

 

Robocopy 参数进阶:/MIR 镜像同步与 /PURGE 删除操作的风险规避指南 本文深入解析Robocopy的/MIR镜像同步与/PURGE删除操作的高级用法及风险规避策略。通过实际案例和四重防护机制,指导用户安全实现目录同步,避免数据丢失风险,特别适用于远程主机间的数据复制与备份场景。 阅读详情

相关推荐

别再只放按钮了!巧用微信小程序‘长按识别’功能,打造无缝加群体验

本文深入探讨了微信小程序'长按识别'功能在社群运营中的创新应用,通过简化加群流程至一步操作,显著提升用户转化率。文章详细解析了技术实现细节、UI/UX设计策略,并对比了与企业微信API的适用场景,为开发者提供打造无缝加群体验的完整解决方案。

weixin_42627853的博客 434

Java NIO:Buffer缓冲区的基本原理

学习NIO,首先要知道的就是三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。 NIO中的关键Buffer实现有:ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer,分别对应基本数据类型: byte, ch

保暖透气大裤衩LeoLee的博客 793

STDP实战:用PyTorch从零搭建脉冲神经网络(附完整代码)

本文提供了基于PyTorch从零搭建脉冲神经网络的实战教程,重点讲解了STDP学习规则的原理与工程实现。通过构建LIF神经元模型和向量化STDP层,并结合泊松编码,详细演示了如何构建一个能够进行无监督特征学习的混合网络架构,为探索神经形态计算和低功耗实时学习方案提供了完整代码与实践指南。

weixin_29056145的博客 264

Java NIO系列教程(三) Buffer

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34356138的博客 510

多元相关性分析_PAST:最简便易用的统计学分析软件教程目录

欢迎来到PAST的世界!本教程并不是将PAST的所有功能均进行详细介绍,而只是挑选与生物、医学、微生物研究相关的统计学分析内容进行讲述。根据PAST内各项分析的标签分类,将该教程具体设置如下:PAST软件介绍PAST的基本信息数据的输入和修改数据的转换和标准化图像绘制 (Plot标签)点线图和直方图散点图条形图和箱须图饼图堆叠条形图三元相图气泡图单变量统计学分析 (Univariate标...

weixin_39605706的博客 3155

Dify插件离线部署全攻略:从下载到安装的完整流程

本文详细介绍了Dify插件离线部署的完整流程,针对企业内网等无网络环境需求。核心步骤包括在联网环境下载插件包、在特定Python 3.12.9环境下使用专用工具进行离线重打包,以及最终在离线Dify环境中安装验证。重点解决了离线安装的核心难题,并提供了环境配置、批量处理和故障排查等实用技巧,帮助用户实现Dify插件的顺利离线部署。

seed的博客 657

JAVA:NIO中的缓冲区(Buffer)详解 -------源码

缓冲区buffer 1.作用 buffer是一个抽象类,存在于java.nio包中,在java NIO中负责数据的存取,缓冲区(buffer)就是数组,用于存储不同数据类型的数据,根据数据类型不同(boolean除外),提供了相应类型的缓冲区。ByteBuffer,shortBuffer,IntBuffer,...

颠沛的小丸子 677

从硅到氮化镓:用Sentaurus TCAD仿真GaN HEMT功率器件,我踩过的那些坑

本文分享了使用Sentaurus TCAD仿真GaN HEMT功率器件的实战经验,详细解析了从硅基到氮化镓的技术转型中遇到的五大关键挑战:材料参数设置、极化效应建模、网格划分策略、陷阱模型校准以及仿真与实测数据匹配。通过具体案例和参数优化方法,帮助工程师避开常见陷阱,提升TCAD仿真精度与效率。

weixin_28726671的博客 379

java rewind()_Java NIO Buffer的clear()、reset()、rewind()、flip()方法的区别

Buffer是一个抽象类,位于java.nio包中,主要用作缓冲区。注意:Buffer是非线程安全类。capacity一旦初始化后就不会改变,其值一直为常量。在使用中我们一般使用Buffer的抽象子类ByteBuffer.allocate()方法,实际上是生成ByteArrayBuffer类。(1)Buffer中定义的变量含义/** * UNSET_MARK means the mark has ...

weixin_35056594的博客 525

【gcc】跨版本兼容实战:高版本编译程序在低版本glibc环境下的部署方案

本文针对高版本gcc编译的程序在低版本glibc环境下部署的兼容性问题,提供了四种实战解决方案:静态编译的局限性、容器化部署的优雅方案、使用Devtoolset工具链的官方支持,以及最通用灵活的打包依赖SO发布方案。重点剖析了通过设置RPATH和Interpreter或使用patchelf工具,实现程序与自带库的独立部署,有效解决glibc版本鸿沟。

weixin_29237635的博客 362

LangChain从入门到精通最全教程

LangChain是一个用于构建基于大语言模型(LLM数据感知:连接外部数据源(文档、API等)智能代理:通过工具调用实现自主决策模块化设计:支持链式调用、记忆管理、提示词工程等from langchain . llms import BaseLLM class CustomLLM(BaseLLM) : def _call(self , prompt : str , ** kwargs) - > str : return f"自定义响应: {

Cachel Wood的博客 1409

NIO之Buffer的clear()、rewind()、flip()方法的区别

Java的NIO中有关Buffer的几种常用方法比如clear,rewind和flip到底有哪些区别。下面给大家这三种方法的源码,方便大家记忆。 clear()方法用于写模式,其作用为情况Buffer中的内容,所谓清空是指写上限与Buffer的真实容量相同,即limit==capacity,同时将当前写位置置为最前端下标为0处。代码如下: public final Buffer clear()

wanzaixiaoxin的专栏 1万+

全新YOLO26有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

🔥《2026年YOLO26改进专栏》🔥 🚀持续更新500+最前沿创新改进点(顶会顶刊论文/独家创新策略),涵盖主干网络、各种卷积、注意力机制、检测头等模块,助力科研论文发表与模型性能提升,支持检测/分割/分类任务。订阅即获完整可运行项目,提供专业QQ答疑群,适合科研发论文(SCI/CCF/核心)及工业应用(PCB/医学/遥感检测)。专栏价格将逐步上涨,早订更优惠! ⭐特色:非计算机专业友好、模块可自由组合、全网独家创新;📌适用:研究生大论文和小论文创新、小目标检测、多领域科研应用,满足不同研究需求。

Ai缝合怪、助力小伙伴高效发论文 5126

JAVA学习——Buffer

Buffer定义 Buffer 在java.nio包中实现,被定义成抽象类 Buffer的实现类关系: 创建Buffer 创建Buffer的方法(以ByteBuffer为例)主要是 allocate public static ByteBuffer allocate(int capacity) { if (capacity &lt; ...

大风的博客 385

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深入浅出NIO之Channel、Buffer

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34191845的博客 88

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java缓冲区如何合理的定义_Java NIO ———— Buffer 缓冲区详解 入门

引言缓冲区是一个用于特定基本类型的容器。由java.nio 包定义,所有缓冲区都是 Buffer 抽象类的子类。Java NIO 中的 Buffer ,主要用于与NIO 通道进行交互。数据从通道存入缓冲区,从缓冲区取出到通道中。一、创建缓冲区缓冲区的本质是数组,用于存储不同类型的数据,根据数据类型(boolean 除外),提供了相应类型的缓冲区,如ByteBuffer、IntBuffer等。这...

weixin_39875419的博客 346

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

详解,NIO中的缓冲区

J3 - 白起 技术(NIO # 缓冲区) NIO 的出现就是为了解决传统 IO 上的不足,而 NIO 三大组件中的缓冲区就是提高效率的组件之一。 在 NIO 中缓冲区是占据着非常重要的地位,因为数据就放在缓冲区中,对数据的 CRUD 操作都是对缓冲区的操作,所以缓冲区操作的对于否都直接关系到最终结果的正确性。 下面就开始了解它把! 一、缓冲区类体系介绍 JDK1.4 抽象出了一个缓冲区的抽象类,该类是顶级类下面有七个直接子类,如图: 对于我们 Java 八种基本数据类型中,除了 boolean ..

技术分享、唠嗑水文、如有不周、还望海涵 642

Java NIO 源码阅读笔记(一)

java.nio 包描述nio作为最顶层包,定义了Buffers相关的类。 Buffers:提供了缓存数据的功能,贯穿于整个NIO API中。NIO API的四个主要抽象包: Buffers:数据容器 Charsets: 涉及到编码解码,因为序列化字符需要在Unicode编码相互转化 Channels : 对应着每个IO通道,例如文件啊,网络io等等的 Selectors: 和Channels结合

wzq294328238的专栏 1059

NIO-ByteBuffer

一、ByteBuffer 官方解释A byte buffer,一个字节缓冲区。 二、ByteBuffer的扩展 Bytebuffer UML图 - 描述 优点 HeapByteBuffer 在jvm堆上面的一个buffer,底层的本质是一个数组 由于内容维护在jvm里,所以把内容写进buffer里速度会快些;并且,可以更容易回收 DirectByteBuffer 底层的数据其...

吴大侠的博客 90

java nio rewind_NIO-java.nio.ByteBuffer中flip、rewind、clear方法的区别

原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。Buffer的基本用法使用Buffer读写数据一...

weixin_39521068的博客 617

Java NIO之Buffer

什么是NIO 在计算机世界,要想和计算机交互必须有输入(Input)和输出(Output)才能把我们的请求发送给计算机,计算机处理后给我们一个结果,可见输入输出很重要。同理在Java中也有处理输入输出的模块。包括IO和NIO,其中IO相关代码在java.io包下,我们今天要聊的NIO在java.nio包下。这两种IO有什么区别呢? 传统IO基于字节流和字符流进行操作,而NIO基于Channel和B...

QiwooMobile的博客 253

java bytebuffer 清空_java.nio.ByteBuffer 以及flip,clear及rewind区别

Buffer 类定义了一个可以线性存放primitive type数据的容器接口。Buffer主要包含了与类型(byte, char…)无关的功能。值得注意的是Buffer及其子类都不是线程安全的。每个Buffer都有以下的属性:capacity这个Buffer最多能放多少数据。capacity一般在buffer被创建的时候指定。limit在Buffer上进行的读写操作都不能越过这个下标。当写数据...

weixin_28954201的博客 1003

4.8 NIO Buffer详解

4.8 Buffer        Java中的Buffer就是一块内存区,用于存放特定的数据,Buffer常用于和Channel一起工作,也能做缓存。将数据从其他地方读到Buffer,也可以将Buffer中的数据写入其他地方。 4.8.1 Buffer分类        Java中有以下不同类型的buffer:ByteBuffer,MappedByteBuffer,

刘滨浩的博客 2191

NIO的buffer使用

Buffer 有三个属性: capacity position limit capacity是分配时确定的,是一个常量;position和limit的含义与 Buffer 处于读模式或写模式有关, 写模式时,position是当前已写到的位置,limit是最大可写到的位置 读模式时,position是当前已读到的位置,limit是最大可读到的位置 limi...

xyfaneast的博客 182

六、Java NIO(Buffer)

NIO 目录 文章目录六、Java NIO(Buffer)1、Buffer 简介2、Buffer 的基本用法3、Buffer 的 capacity、position 和 limit4、Buffer 的类型5、Buffer 分配和写数据5.1、Buffer 分配5.2、向 Buffer 中写数据5.3、flip()方法6、从 Buffer 中读取数据7、Buffer 几个方法7.1、rewind()方法7.2、clear()与 compact()方法7.3、mark()与 reset()方法8 缓冲区操作8

wang_luwei的博客 294

java buffer nio_Java NIO 的前生今世 之三 NIO Buffer 详解

Java NIO Buffer当我们需要与 NIO Channel 进行交互时, 我们就需要使用到 NIO Buffer, 即数据从 Buffer读取到 Channel 中, 并且从 Channel 中写入到 Buffer 中.实际上, 一个 Buffer 其实就是一块内存区域, 我们可以在这个内存区域中进行数据的读写. NIO Buffer 其实是这样的内存块的一个封装, 并提供了一些操作方法让...

weixin_31527905的博客 117
上一篇: java swing 中的FileDialog
下一篇: Java NIO 拷贝文件(使用compact)
topinking
博客等级 码龄20年 15粉丝 242原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值