为什么在CharBuffer中有isDirect()
方法?
如果CharBuffer
或Buffer
中没有相应的(allocateDirect)方法,如何分配直接的CharBuffer?
我可能是这样的:
ByteBuffer.alocateDirect(100).asCharBuffer()
是这样吗,这是唯一(推荐)的方法吗?
最佳答案
CharBuffer
以及许多其他方法都从Buffer
接口继承该方法。CharBuffer
具有多个子类
例如,DirectCharBuffer
返回true
。
这个
ByteBuffer.allocateDirect(20).asCharBuffer();
将返回
DirectCharBuffer
,即CharBuffer
。大尾数系统的
*U
后缀。其他类型的
*S
后缀(小尾数)。只读缓冲区的
*R
后缀。final CharBuffer cb = ByteBuffer.allocateDirect(20).asCharBuffer();
final boolean direct = cb.isDirect(); // true
是这样吗,这是唯一(推荐)的方法吗?
是。
作为参考,什么是直接缓冲区?请参见JavaDoc,直接缓冲区与非直接缓冲区。
关于java - 如果我们在CharBuffer或Buffer中没有相应的(allocateDirect)方法,我们如何分配直接的CharBuffer?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55443117/