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: 标记

相关推荐
武子康3 分钟前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
若亦_Royi4 分钟前
C++ 的大括号的用法合集
开发语言·c++
资源补给站1 小时前
大恒相机开发(2)—Python软触发调用采集图像
开发语言·python·数码相机
豪宇刘1 小时前
MyBatis的面试题以及详细解答二
java·servlet·tomcat
秋恬意1 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
m0_748247551 小时前
Web 应用项目开发全流程解析与实战经验分享
开发语言·前端·php
6.942 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala
FF在路上2 小时前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言
真的很上进2 小时前
如何借助 Babel+TS+ESLint 构建现代 JS 工程环境?
java·前端·javascript·css·react.js·vue·html
众拾达人3 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言