IoBuffer in MINA

IoBuffer是MINA框架自己的用于替代ByteBuffer的一个类,MINA不直接使用ByteBuffer的原因有两个:

1.ByteBuffer没有一些有用的getter和putter方法比如get/putString

2.ByteBuffer的长度是固定的所以很难存储变长的数据

 

IoBuffer提供一个新的wrap方法可以直接包裹ByteBuffer或则byte[]来得到IoBuffer对象

 

AutoExpand:setAutoExpand(true)之后,容量不够时IoBuffer对象会自动扩展它的limit和capacity值

 

AutoShrink:如果autoShrink为true,当调用compact方法且小于或等于四分之一的capacity空间被使用则,capacity减半,或则可以直接调用shrink()方法。但是如果新的capacity将会小于minimumCapacity那就不生效

 

不管是expand还是shrink都是通过生成一个新的底层ByteBuffer实现的

 

Derived Buffer:衍生Buffer可以通过duplicate()、slice()、asReadOnlyBuffer()等方法得到,一般都用于在多个IoSession共享相同消息。有一点要注意,这些衍生buffer都是不能expand或shrink的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值