这篇文章主要讲解了“java.nio.Buffer的基础知识有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java.nio.Buffer的基础知识有哪些”吧!
capacity(): 表明缓冲区的容量大小, 一旦确定了大小, 将不能再改变;
limit(): 告诉您到目前为止已经往缓冲区填了多少字节,或者用#limit(int)来改变这个限制;
position(): 告诉您当前的位置,以执行下一个读/写操作;
mark(): 为了稍后用 reset() 进行重新设置而记住某个位置;
flip(): 交换限制指针和位置指针,然后将位置置为 0,并废弃已经做的mark标记。
缓冲区的基本操作是读#get()和写#put()。
缓冲区类型:
NIO具有7种特定的 Buffer 类型,每种类型对应着一个基本数据类型(除了 boolean)
ByteBuffer //字节缓冲区 CharBuffer //字符缓冲区 DoubleBuffer //double 缓冲区 FloatBuffer //float 缓冲区 IntBuffer //int 缓冲区 LongBuffer //long 缓冲区 ShortBuffer //short 缓冲区
缓冲区分为直接缓冲区和间接缓冲区,直接缓冲区的创建成本要高于间接缓冲区,但同时它也会提供更快的I/O访问速度。所以直接缓冲区适合那种长期存在的缓冲区,而间接缓冲区则适合于生命周期较短的。还有,要注意,只有ByteBuffer可以创建直接缓冲区。
缓冲区的几个内部状态的改变:
容量(capacity),缓冲区大小
限制(limit),***个不应被读取或写入的字节的索引,总是小于容量。
位置(position),下一个被读取或写入的字节的索引,总是小于限制。
0 <= position <= limit <= capacity
1. clear()方法:设置limit为capacity,position为0,并丢弃mark。
2. filp()方法:设置limit为当前position,然后设置position为0,并丢弃mark。
3. rewind()方法:保持limit不变,设置position为0,并丢弃mark。
感谢各位的阅读,以上就是“java.nio.Buffer的基础知识有哪些”的内容了,经过本文的学习后,相信大家对java.nio.Buffer的基础知识有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。