【NIO总结】—NIO中的缓冲区

本文详细介绍了Java NIO中的缓冲区,包括Buffer的类型如ByteBuffer、CharBuffer等,核心概念如容量、限制、位置和标记,以及直接缓冲区和非直接缓冲区的区别。缓冲区在NIO中起到关键作用,允许数据在通道和应用程序间高效地交互。
摘要由CSDN通过智能技术生成

        NIO中的缓冲区是一个用于特定基本数据类型的容器。在java.io包中定义,所有缓冲区都是Buffer抽象类的子类。Buffer主要用于和NIO通道进行交互,数据可以从通道读入缓冲区,也可以从缓冲区写入到通道中。Buffer就像一个数组,可以保存多个相同类型的数据。

 

缓冲区的类型

 

根据数据类型的不同,缓冲区的类型分为以下几类,其中不包括boolean对应的Buffer:

        ByteBuffer:字节缓冲区

        CharBuffer:字符缓冲区

        DoubleBuffer:双精浮点缓冲区

        FloatBuffer:单精浮点缓冲区

        IntBuffer:整型缓冲区

        LongBuffer:长整型缓冲区

        ShortBuffer:短整型缓冲区

 

这些不同的Buffer类都采用相似的方法操作数据,只不过操作的数据类型不同而已。例如:

        获取缓冲区(以字节缓冲区为例):ByteBuffer buffer = ByteBuffer.allocate(int capacity)或ByteBuffer buffer = ByteBuffer.allocateDirect(int capacity)。

 

        存入数据(以字节缓冲区为例):buffer.put("a".getBytes()),提供单个字节存入或以字节数组的形式存入。

 

        取出数据(以字节缓冲区为例):buffer.get(),提供获取单个字节的

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值