Java NIO 中的 ByteBuffer 和 CharBuffer 有啥区别?

Posted

技术标签:

【中文标题】Java NIO 中的 ByteBuffer 和 CharBuffer 有啥区别?【英文标题】:What is the difference between ByteBuffer and CharBuffer in Java NIO?Java NIO 中的 ByteBuffer 和 CharBuffer 有什么区别? 【发布时间】:2010-11-08 07:49:58 【问题描述】:

如果是 java.nio 包,ByteBuffer 和 CharBuffer 有什么区别。和 byte 和 char 的区别一样吗?

【问题讨论】:

【参考方案1】:

大多数情况下,是的 - 但ByteBuffers 也有将ByteBuffer 视为其他类型的缓冲区(例如asDoubleBuffer)以及将其他原始类型放入缓冲区(例如putLong)的操作。

CharBuffer 还实现了AppendableCharSequence,使其更易于用于文本操作。

【讨论】:

【参考方案2】:

你可以这样看。 ByteBuffer 是(8 位)byte 值的缓冲区,而 CharBuffer 保存(16 位)chars

【讨论】:

以上是关于Java NIO 中的 ByteBuffer 和 CharBuffer 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

NIO中的heap Buffer和direct Buffer区别

直接 java.nio.ByteBuffer 与 Java 数组性能测试

Java NIO中的Channel接口

java.nio.ByteBuffer.array(ByteBuffer.java:959) 处的 java.lang.UnsupportedOperationException

java.nio.ByteBuffer.slice() 线程行为?

Java NIO 之 ByteBuffer 测试用例