有没有人见过java.nio.ByteBuffer的实现,如果putX()调用超出容量,该实现会动态增长?
我想这样做的原因有两个:
最佳答案
为了使异步I/O起作用,必须具有连续的内存。在C中,您可以尝试重新分配数组,但是在Java中,您必须分配新的内存。您可以写入ByteArrayOutputStream
,然后在准备发送时将其转换为ByteBuffer
。缺点是您正在复制内存,而高效IO的关键之一就是减少内存的复制次数。
关于java - 增长的ByteBuffer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1774651/