为什么在CharBuffer中有isDirect()
方法?
如果在CharBuffer
或Buffer
中没有相应的(allocateDirect)方法,如何分配直接的CharBuffer?
我可能是这样:
ByteBuffer.alocateDirect(100).asCharBuffer()
是这样吗,这是唯一(推荐)的方式吗?
答案 0 :(得分:0)
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的直接与非直接缓冲区部分。