ByteBuffer的介绍

本文深入探讨了ByteBuffer在提升IO效率方面的作用,解析了其关键属性如position、limit、capacity及mark的意义,并详细介绍了flip、rewind、clear和mark等操作对这些属性的影响。
摘要由CSDN通过智能技术生成

有一个问题需要明确:
为什么要使用bytebuffer,它比byte比起来有什么优点?

很简单:为了提高IO的效率。怎样提高的,这个还得google一下。

记住几个标志的含义:
position:当前指针的位置,也就是接下来要读写的位置。
limit:限制,一个缓冲区可读写的范围。
capability:容量,一个缓冲区最多的存放的字节数。
mark:标志位,记录当前的位置。

界限是用来控制当前读写的范围,如果容量为100,界限为10,则位置只能在0-10之间,即只能读写0-10之间的数据。


几个操作对它们的影响:(操作都会影响到position,clear和flip会影响到limit
flip():limit=position, position=0.中文意思是“翻转”。

rewind():position=0,limit不变,可以用于重复读取一段数据. 扩展所有的数据,中文意思是“倒带”,也就是从头开始别的什么也不变。中文意思是“翻转”,也就是当前指,针在哪就在哪,然后从头开始。

 

clear():position=0,limit=capability,也就是相当于清空了之前的内容,但是ByteBuffer中数组的内容在向里面写入之前是没有改变的.所有的位置与使用ByteBuffer.allocate(int capacity)是一样一样的。


mark( ) 就是把当前的Position( ) 设置一个标记!

reset( ) position=mark();

 

转载于:https://www.cnblogs.com/lxzh/archive/2012/06/24/2559780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值