Java Netty - Buffer类

Buffer类

当应用程序进行数据传输的时候,往往需要使用缓冲区,常用的缓存区就是JDK NIO类库提供的 java.nio.Buffer
NIO的Buffer本质上是一个内存块,既可以写入数据,也可以从中读取数据;
其中,Java NIO中代表缓冲区的Buffer类是一个抽象类,对应于Java的主要数据类型,在NIO中有8种缓存区,分别如下:ByteBuffer,CharBuffer,DoubleBuffer,FloatBuffer,IntBuffer,LongBuffer,ShortBuffer,MappedByteBuffer;前7种 Buffer类型,覆盖了能在 IO中传输的所有的 Java基本数据类型,第8种类型MappedByteBuffer是专门用于内存映射的一种 ByteBuffer类型;

Buffer类以及子类


IntBuffer - int类型的缓冲区。
ShortBuffer - short类型的缓冲区。
LongBuffer - long类型的缓冲区。
FloatBuffer - float类型的缓冲区。
DoubleBuffer - double类型的缓冲区。
ByteBuffer - byte类型的缓冲区。
CharBuffer - char类型的缓冲区。

我们来看看Buffer的源码 定义了四个核心的变量~


capacity: 容量 即最大的数据量,在缓冲区创建时设定bong不能改变
limit: 表示缓冲区的点 不能对缓冲区超过极限的位置进行读写操作,且极限是可以修改的
position: 位置(下标)下一个要是被读或写的元素的索引,每次读写缓冲区操作 且极限是可以是修改的

mark: 标记

相关推荐
uzong16 分钟前
程序员从大厂回重庆工作一年
java·后端·面试
kyle~20 分钟前
C++---value_type 解决泛型编程中的类型信息获取问题
java·开发语言·c++
NiNi_suanfa3 小时前
【Qt】Qt 批量修改同类对象
开发语言·c++·qt
小糖学代码3 小时前
LLM系列:1.python入门:3.布尔型对象
linux·开发语言·python
Data_agent4 小时前
1688获得1688店铺详情API,python请求示例
开发语言·爬虫·python
妖灵翎幺4 小时前
C++ 中的 :: 操作符详解(一切情况)
开发语言·c++·ide
开心香辣派小星4 小时前
23种设计模式-15解释器模式
java·设计模式·解释器模式
Halo_tjn5 小时前
虚拟机相关实验概述
java·开发语言·windows·计算机
star _chen5 小时前
C++实现完美洗牌算法
开发语言·c++·算法
周杰伦fans5 小时前
pycharm之gitignore设置
开发语言·python·pycharm