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
相关推荐
_yingty_1 分钟前
Java设计模式-策略模式(行为型)
java·设计模式·策略模式
小小寂寞的城20 分钟前
Jenkins里构建一个简单流水线
java·运维·jenkins
wowocpp38 分钟前
idea springboot 配置文件 中文显示
java·spring boot·intellij-idea
User_芊芊君子41 分钟前
【Java面试题】——this 和 super 的区别
java·开发语言
柴薪之王、睥睨众生42 分钟前
(自用)Java学习-5.8(总结,springboot)
java·开发语言·spring boot·学习·mybatis
牛马baby42 分钟前
Java高频面试之并发编程-17
java·开发语言·面试
让我们一起加油好吗43 分钟前
【C++】模板(初阶)
开发语言·c++·visualstudio·模板·泛型编程
不辉放弃2 小时前
java连数据库
java·mysql
灏瀚星空2 小时前
基于Python的量化交易实盘部署与风险管理指南
开发语言·python
Run_Teenage2 小时前
C++类和对象:运行符重载、取地址运算符重载、const 修饰的类如何作为参数
开发语言·c++