Java中可用的最大可调整大小的字节缓冲区是什么?

Wor*_*ker 10 java

我需要Java中的字节缓冲类来实现单线程使用.缓冲区应该在它满时调整大小,而不是抛出异常或其他东西.对我来说非常重要的问题是表现.

你会推荐什么?

添加:在我使用ByteBuffer但它无法调整大小.我需要一个可以调整大小的.

Nic*_*cue 9

有什么理由不使用枯燥的普通ByteArrayOutputStream吗?

如上面的miku所述,Evan Jones对不同类型进行了回顾,并表明它非常依赖于应用程序.因此,在不了解更多细节的情况下,很难推测.

我将从ByteArrayOutputStream开始,并且只有在分析显示它是你的性能瓶颈转移到其他东西时.通常当您认为缓冲区代码是瓶颈时,它实际上将是网络或其他IO - 等到分析显示您需要优化之后才浪费时间寻找替代品.

如果您要转向别的东西,那么您需要考虑的其他因素:

  • 您已经说过使用单线程,因此不需要BAOS的同步
  • 填充和输入的缓冲区是什么?如果已经连接任何一端使用Java NIO,那么使用直接ByteBuffer非常有效.
  • 您使用循环缓冲区还是普通线性缓冲区?如果你是Ostermiller Utils非常有效,并且GPL