package Netty与NIO的前生今世3;
import java.nio.IntBuffer;
/**
* Buffer操作基本API
* 缓冲区实际上是一个容器,更直接的说,其实就是一个数组,在NIO库中,所有数据都是用缓冲区处理的。
* 在读数据时,它是直接读到缓冲区的;在写入数据时,它也是写入缓冲区;任何时候访问NIO中的数据
* ,都是将它放到缓冲区中。而在面向I/O系统中,所有数据都是直接写入或者将数据读到steam对象中
* 在NIO中,所有的缓冲区类型都继承自抽象类Buffer,对于java中的基本类型,基本都有一个具体Buffer
* 类型与之相对应,他们之间的继承关系
* ByteBuffer MappedByteBuffer
* LongBuffer
* DoubleBuffer
* Buffer CharBuffer
* FloatBuffer
* intBuffer
* ShortBuffer
*
*/
class IntBufferDemo{
public void IntBufferDemo(){
//分配新的int缓冲区,参数为缓冲区容量
//新缓冲区的当前位置将为0,其界限(限制位置)为其容量。它具有一个底层实现数组,其数组偏移量为0;
IntBuffer intBuffer= IntBuffer.allocate(8);
for (int i=0;i<intBuffer.capacity();i++){
int j=2*(i+1);
//将给定整数写入此缓冲区的当前位置,当前位置递增
intBuffer.put(j);
}
//重设此缓冲区,将限制位置设置为当前位置,然后将当前位置设置为0
intBuffer.flip();
//查看在当前位置和限制位置之间是否有元素
while (intBuffer.hasRemaining()){
//读取此缓冲区当前位置的整数,然后当前位置递增
int j=intBuffer.get();
System.out.print(j+" ");
}
}
}
public class N3111 {
public static void main(String[] args) {
IntBufferDemo intBufferDemo=new IntBufferDemo();
intBufferDemo.IntBufferDemo();
}
}
Buffer基本API-N3111
最新推荐文章于 2021-06-20 12:47:48 发布