关于Expanding Java Memory-Mapped Byte Buffer,为什么缓冲区在写入超出限制时会扩展?在没有重新映射缓冲区的情况下,甚至没有办法实现该行为。这对我来说似乎有点奇怪,因为我想象一些开发人员想要它,或者这只是以错误的方式使用缓冲区?
答案 0 :(得分:2)
MappedByteBuffer
是ByteBuffer
是Buffer
,其具有在创建时定义的固定容量。所以Buffer
的语义阻止了它。
正如@SotiriosDelimanolis和@fge所提到的,操作系统语义也会阻止它。内存映射是使用固定大小创建的,如果您在本机级别超出该大小,则会得到SIGSEGV
。