Netty:判断ByteBuf底层是否被NIO direct buffer支撑

说明

io.netty.buffer.ByteBuf的函数isDirect()可以判断该ByteBuf底层是否被NIO direct buffer支撑。如果结果返回true,表示底层被NIO direct buffer支撑。

示例

复制代码
package com.thb;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.Unpooled;

public class Test {

	public static void main(String[] args) {
		// 创建一个ByteBuf
		ByteBuf buf = Unpooled.buffer();
		// 查看buf的具体类名
		System.out.println("buf.getClass().getName(): " + buf.getClass().getName());
		// 判断是否direct
		System.out.println("buf.isDirect: " + buf.isDirect());
		System.out.println();
		
		// 另外一种分配ByteBuf的方法
		ByteBuf buf2 = ByteBufAllocator.DEFAULT.buffer();
		System.out.println("buf2.getClass().getName(): " + buf2.getClass().getName());
		System.out.println("buf2.isDirect: " + buf2.isDirect());
	}
}

运行输出:

复制代码
buf.getClass().getName(): io.netty.buffer.UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf
buf.isDirect: false

buf2.getClass().getName(): io.netty.buffer.PooledUnsafeDirectByteBuf
buf2.isDirect: true
相关推荐
鸽鸽程序猿20 分钟前
【项目】【抽奖系统】抽奖
java·spring
yue00828 分钟前
C# winform自定义控件
开发语言·c#
JANGHIGH1 小时前
c++ 多线程(三)
开发语言·c++
2503_928411561 小时前
12.9 Vue3+Vuex+Js+El-Plus+vite(项目搭建)
开发语言·javascript·ecmascript
GoogleDocs1 小时前
基于[api-football]数据学习示例
java·学习
卓码软件测评1 小时前
第三方软件验收评测机构【Gatling安装指南:Java环境配置和IDE插件安装】
java·开发语言·ide·测试工具·负载均衡
weixin_307779131 小时前
Jenkins中的Jakarta Activation API插件:功能、使用与最佳实践
运维·开发语言·ci/cd·自动化·jenkins
妮妮分享1 小时前
H5获取定位的方式是什么?
java·前端·javascript
Billow_lamb1 小时前
MyBatis-Plus 的 条件构造器详解(超详细版)
java·mybatis
CoderYanger1 小时前
动态规划算法-两个数组的dp(含字符串数组):48.最长重复子数组
java·算法·leetcode·动态规划·1024程序员节