本文主要是介绍Java NIO Buffer的flip、reset、mark、rewind、clear操作区别联系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
标记、位置、限制和容量值遵守以下不变式:
0 <= 标记 <= 位置 <= 限制 <= 容量
位置 | 限制 | 容量 | 标记 | |
position | limit | capcity | mark | |
mark | / | / | / | position |
reset | position | / | / | / |
clear | 0 | capcity | / | 丢弃 |
flip | 0 | position | / | / |
rewind | 0 | / | / | / |
缓冲区的容量 是它所包含的元素的数量。缓冲区的容量不能为负并且不能更改。
缓冲区的限制 是第一个不应该读取或写入的元素的索引。缓冲区的限制不能为负,并且不能大于其容量。
缓冲区的位置 是下一个要读取或写入的元素的索引。缓冲区的位置不能为负,并且不能大于其限制。
(这部分是转载)
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 | 未 |
这篇关于Java NIO Buffer的flip、reset、mark、rewind、clear操作区别联系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!