Java NIO Buffer中各類狀態屬性的含義

關於NIO Buffer中的3個重要狀態屬性的含義: postion, limit與capacity。java

public class NioTest
{
    public static void main(String[] args) {
        IntBuffer buffer = IntBuffer.allocate(10);

        System.out.println("capacity:" + buffer.capacity());

        for(int i = 0 ; i < 5; i++){
            int randomNumber = new SecureRandom().nextInt(20);
            buffer.put(randomNumber);
        }

        System.out.println("before flip limit: " + buffer.limit());

        buffer.flip();

        System.out.println("after flip limit: " + buffer.limit());

        while (buffer.hasRemaining()){
            System.out.println("position: " + buffer.position());
            System.out.println("limit: " + buffer.limit());
            System.out.println("capacity: " + buffer.capacity());
            System.out.println(buffer.get());
        }
    }
}

  輸出結果:dom

capacity:10
before flip limit: 10
after flip limit: 5
position: 0
limit: 5
capacity: 10
7
position: 1
limit: 5
capacity: 10
14
position: 2
limit: 5
capacity: 10
11
position: 3
limit: 5
capacity: 10
14
position: 4
limit: 5
capacity: 10
0
相關文章
相關標籤/搜索