Buffer的几个属性和方法速记

 

java.nio.Buffer 

 

属性

 

mark 
position
limit一般情况下limit==catacity
capacity此属性一经设置,就不会改变
remainglimit-position
address 

 

查询类方法

 

remaining limit - position; 
hasRemaininglimit < position;
 

 

改变类方法

 

markmark=position;
resetposition=mark;
clear

position=0;

limit=capacity;

mark=-1;

flip

limit=position;

position=0;

mark=-1;

rewind

position=0;

mark=-1;

limit()

limit=newLimit;

 

if (position > limit) position = limit;

if (mark > limit) mark = -1;

 

position()

position = newPosition;

 

if (mark > position) mark = -1;

 

System.arraycopy(hb, ix(position()), hb, ix(0), remaining());

 

position(remaining());

limit(capacity());

 

compact
slice

new HeapIntBuffer(hb,

-1,

0,

this.remaining(),

this.remaining(),

this.position() + offset);

 

  1. 共享底层存储byte[]
  2. mark=-1;
  3. position=0;
  4. limit=remaining;
  5. capacity=remaing;
  6. offset = offset+position;

 

 

 

duplicate

 new HeapByteBuffer(hb,

 

this.markValue(),

this.position(),

this.limit(),

this.capacity(),

offset);

 

  1. 共享底层存储byte[]
  2. mark=mark;
  3. position=position;
  4. limit=limit;
  5. capacity=capacity;
  6. offset = offset;

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值