0

为什么我们 isDirect()在 CharBuffer 中有方法?

CharBuffer如果我们在or中没有任何相应的 (allocateDirect) 方法,我们如何分配直接 CharBuffer Buffer

我猜可能是:

ByteBuffer.alocateDirect(100).asCharBuffer()

是这样吗?这是唯一(也是推荐的)方法吗?

4

1 回答 1

1

CharBufferBuffer接口继承该方法,还有许多其他方法。
CharBuffer有多个子类

在此处输入图像描述

例如DirectCharBuffer(s) return true
这个

ByteBuffer.allocateDirect(20).asCharBuffer();

将返回 a DirectCharBuffer,即 a CharBuffer

*U大端系统的后缀。
*S其他类型的后缀(小端)。
*R只读缓冲区的后缀。


final CharBuffer cb = ByteBuffer.allocateDirect(20).asCharBuffer();
final boolean direct = cb.isDirect();  // true

是这样吗?这是唯一(也是推荐的)方法吗?

是的。


作为参考,什么是直接缓冲区?请参阅JavaDoc直接与非直接缓冲区部分。

于 2019-03-31T16:52:17.260 回答