java NIO
为什么要使用,等到NIO所有章节结束后会给出,以及NIO的使用条件和执行效率。目前先不提。
提到NIO,有三个概念很重要:缓冲区、通道和选择器。
前几章我们讲解缓冲区。
顾名思义,缓冲区指的是缓冲数据的区域或者存储数据的区域,缓冲区在JAVA中的抽象基类是:java.nio.Buffer。
Buffer将数据的存储和存储的属性进行封装,为我们提供了缓冲区的概念,根据换出数据的类型不同,Buffer总共有8个子类,他们类分层结构如图:
个人觉得,Buffer的学习只要弄清楚几个概念,其余的问题就迎刃而解了,无非就是在这几个元素上的“小把戏”,这几个概念有:
mark
position
limit
capacity
mark用于标记position的位置,大体上可以解释为:mark():mark=position,与之对应的有一个方法reset(),这个方法大体可以解释为reset():position=mark
position用于只是当前将要读取缓冲区的位置
limit用于指示当前缓冲区存储的上线
capacity用于只是缓冲区的容量
他们大体的关系是:
mark<=position<=limit<=capacity
阅读至此,要好好体会下这几个概念,因为将来的大部分方法都是围绕着这么几个元素进行的。