12得票2回答
比较ByteBuffer的内容?

在Java中,比较两个ByteBuffer的内容以检查是否相等的最简单方法是什么?

12得票3回答
将io.netty.buffer.ByteBuf转换为java.nio.ByteBuffer的高效方法

我看到了这个查询: Create a ByteBuf in Netty 4.0 ,关于将byte[]转换为ByteBuf和将ByteBuffer转换为ByteBuf。我很好奇如何进行反向转换: io.netty.buffer.ByteBuf到java.nio.ByteBuffer 并且如何...

12得票2回答
从只读的java.nio.ByteBuffer中提取字符串

如何从只读的ByteBuffer中提取String?我不能使用ByteBuffer.array()方法,因为它会抛出ReadOnlyException异常。我是否必须使用ByteBuffer.get(arr[])方法来读取数据并创建一个String?这样做似乎很浪费资源,需要创建一个副本来进行读取。

12得票2回答
比较直接和非直接 ByteBuffer 的 get/put 操作

非直接字节缓冲区的get/put是否比直接字节缓冲区更快? 如果我必须从直接字节缓冲区中读取/写入,那么先将其读取/写入到线程本地字节数组中,然后使用字节数组完整地更新(对于写入而言)直接字节缓冲区会更好吗?

11得票4回答
ByteBuffer无法释放内存

在Android上,直接字节缓冲似乎从不释放其内存,即使调用System.gc()也是如此。 例如:执行Log.v("?", Long.toString(Debug.getNativeHeapAllocatedSize())); ByteBuffer buffer = allocateDir...

11得票3回答
Java - 优化将值作为位写入ByteBuffer的方法

我目前正在开发一些网络编程代码(这是我的第一个服务器),并且有一个关于优化特定函数的快速问题,该函数将值作为位写入,然后将它们打包成一个字节。优化此函数的原因是因为它在每个服务器滴答声中被使用数千次,用于打包要发送给多个客户端的数据。 一个示例可能更好地解释函数试图实现的内容:值3可以由两个...

11得票2回答
如何从ByteBuffer中获取short[]

我在一个Android项目中使用JNI代码,其中JNI本地函数需要一个short[]参数。然而,原始数据存储在一个ByteBuffer中。我正在尝试将数据格式转换如下。ByteBuffer rgbBuf = ByteBuffer.allocate(size); ... short[] ...

11得票1回答
使用sun.misc.Unsafe,从Direct ByteBuffer中扫描字节的最快方法是什么?

背景 假设我有一个直接字节缓冲区:ByteBuffer directBuffer = ByteBuffer.allocateDirect(1024); 假设我将缓冲区传递给AsynchronousSocketChannel,以从套接字读取数据块,每次读取X个字节(例如此处的1024个字节)。...

11得票1回答
Java - 堆内存 vs 直接内存访问

我最近发现了sun.misc.Unsafe类,允许用户以类似于C语言的方式分配、释放和访问内存。我阅读了几篇博客来解决这个问题,例如: Java堆还是直接内存更快 - 测试结果声称堆更快 Off-heap 内存 vs DirectByteBuffer vs Heap - Off-heap ...

11得票5回答
如何创建 ByteBuffer 的子类?

因此,Java NIO的架构师们没有创建一个ByteBuffer接口,而是创建了一个ByteBuffer类,它不是一个final类,但它没有公共包构造函数,因此它不能在其包之外被子类化。糟糕。:P 我有一个程序,在很多地方使用内存映射文件字节缓冲区(通过FileChannel.map()获得...