主要原因是性能:ByteBuffers和其他NIO类在与本机代码交互时(通常是通过避免将数据复制到临时缓冲区中的需要)来启用加速的操作。
例如,如果您要进行许多OpenGL渲染调用,则这非常重要。
首先创建ByteBuffer的原因是您要使用allocateDirect调用来创建 直接
字节缓冲区,这得益于加速操作。然后,您可以从中创建一个共享相同内存的FloatBuffer。由于某些原因,FloatBuffer本身没有aallocateDirect方法,这就是为什么您必须通过ByteBuffer。


![为什么用FloatBuffer而不是float []? 为什么用FloatBuffer而不是float []?](http://www.mshxw.com/aiimages/31/595883.png)
