为什么MappedByteBuffer不能展开?

时间:2015-01-13 23:57:49

标签: java io buffer

关于Expanding Java Memory-Mapped Byte Buffer,为什么缓冲区在写入超出限制时会扩展?在没有重新映射缓冲区的情况下,甚至没有办法实现该行为。这对我来说似乎有点奇怪,因为我想象一些开发人员想要它,或者这只是以错误的方式使用缓冲区?

1 个答案:

答案 0 :(得分:2)

MappedByteBufferByteBufferBuffer,其具有在创建时定义的固定容量。所以Buffer的语义阻止了它。

正如@SotiriosDelimanolis和@fge所提到的,操作系统语义也会阻止它。内存映射是使用固定大小创建的,如果您在本机级别超出该大小,则会得到SIGSEGV