JNI使用指南(八)-NIO


八、NIO

JDK/JRE 1.4时提供了新的IO访问方式,取代了之前效率不高的BIO。NIO的特色之一便是直接地址访问,这种绕过JVM直接操作内存的方式极大地提高了程序的运行效率。

8.1 新建直接字节缓冲区

通过下列方法可以将一个内存区域作为直接内存缓冲区,为了能够成功创建缓冲区对象,我们应该保证传入有效的地址。

jobject NewDirectByteBuffer(JNIEnv* env, void* address, jlong capacity);

  • address:缓冲区指针
  • capacity:缓冲区容量
  • return:java.nio.ByteBuffer对象的局部引用,当发生异常时返回NULL

8.2 获取直接缓冲区地址

void* GetDirectBufferAddress(JNIEnv* env, jobject buf);

  • buf:java.nio.ByteBuffer对象
  • return:直接缓冲区的地址指针,发生异常时返回NULL

8.3 获取直接缓冲区容量

jlong GetDirectBufferCapacity(JNIEnv* env, jobject buf);

  • buf:java.nio.ByteBuffer对象
  • return:缓冲区容量,发生异常时返回-1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值