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
相关推荐
java1234_小锋1 分钟前
Java高频面试题:Zookeeper对节点的watch监听通知是永久的吗?
java·zookeeper·java-zookeeper
道法自然|~2 分钟前
BugCTF列移位密码(原理+C语言实现)
c语言·开发语言
拳里剑气2 分钟前
C++:封装红黑树实现map和set
开发语言·数据结构·c++·学习方法
zjttsh4 分钟前
怎么下载安装yarn
java
invicinble4 分钟前
centos7
java
xyq20246 分钟前
Bootstrap5 滚动监听
开发语言
沐知全栈开发6 分钟前
SQL PRIMARY KEY(主键)
开发语言
冰暮流星7 分钟前
sql语言之having语句使用
java·数据库·sql
桂花很香,旭很美8 分钟前
[7天实战入门Go语言后端] Day 0:预习——关键词、语法与常用包一览
开发语言·后端·golang
会算数的⑨12 分钟前
Spring AI Alibaba 学习(三):Graph Workflow 深度解析(上篇)
java·人工智能·后端·学习·阿里云·agent·saa