Java 如果我们没有';“CharBuffer”或“Buffer”中没有任何相应的(allocateDirect)方法吗?

Java 如果我们没有';“CharBuffer”或“Buffer”中没有任何相应的(allocateDirect)方法吗?,java,nio,bytebuffer,charbuffer,Java,Nio,Bytebuffer,Charbuffer,为什么在CharBuffer中有isDirect()方法 如果CharBuffer或Buffer中没有任何相应的(allocateDirect)方法,我们如何分配直接CharBuffer 我猜是这样的: ByteBuffer.alocateDirect(100).asCharBuffer() 这是真的吗?这是唯一(也是推荐的)方法吗?CharBuffer从Buffer接口继承了该方法以及其他许多方法。 CharBuffer有多个子类 例如,DirectCharBuffer(s)返回true

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

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

我猜是这样的:

ByteBuffer.alocateDirect(100).asCharBuffer()

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

CharBuffer
Buffer
接口继承了该方法以及其他许多方法。
CharBuffer
有多个子类

例如,
DirectCharBuffer
(s)返回
true

这个

将返回一个
DirectCharBuffer
,它是一个
CharBuffer

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



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



作为参考,什么是直接缓冲区?请参阅“直接缓冲区与非直接缓冲区”一节。

在JavaI中,字符不是字节。我为U/S/R后缀添加了一个解释。您需要其他澄清吗?
ByteBuffer.allocateDirect(20).asCharBuffer();
final CharBuffer cb = ByteBuffer.allocateDirect(20).asCharBuffer();
final boolean direct = cb.isDirect();  // true