为什么我们在CharBuffer中有isDirect()
方法?
如果我们在CharBuffer
或Buffer
中没有任何相应的(allocateDirect)方法,我们如何分配直接的CharBuffer?
我猜可能是:
ByteBuffer.alocateDirect(100).asCharBuffer()
是这样的,它是唯一(和推荐)的方式吗?
CharBuffer
从Buffer
界面继承了该方法,还有许多其他方法。
CharBuffer
有多个子类
例如,DirectCharBuffer
(s)返回true
。
这个
ByteBuffer.allocateDirect(20).asCharBuffer();
将返回DirectCharBuffer
,这是一个CharBuffer
。
*U
后缀为big-endian系统。
其他种类的*S
后缀(little-endian)。
*R
后缀为只读缓冲区。
final CharBuffer cb = ByteBuffer.allocateDirect(20).asCharBuffer();
final boolean direct = cb.isDirect(); // true
是这样的,它是唯一的( 并推荐 )这样做的方式?
是。
作为参考,什么是直接缓冲?请参阅JavaDoc,直接与非直接缓冲区。