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
相关推荐
AI_小站13 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
许彰午14 小时前
03-三种开发模式
java·架构
felixking14 小时前
C++20 协程
开发语言·c++·协程
Rain的Java大神之路15 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
2602_9599609215 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题
Zane19941216 小时前
CAS 与原子类:Java 如何实现无锁编程
java·开发语言
略略略咯咯16 小时前
AI玩具-study
java
码农颜16 小时前
6.3 主函数流程剖析
开发语言·php
TheBestRucy17 小时前
Python 九阳神功:从零筑基到线程飞升
服务器·开发语言·网络·人工智能·python
研☆香17 小时前
聊一聊前端的常见字 关键字
开发语言·前端·javascript