Java 为什么可以';难道一个地图都没有展开吗?

Java 为什么可以';难道一个地图都没有展开吗?,java,io,buffer,Java,Io,Buffer,关于,为什么写入超过限制时缓冲区不扩展?甚至没有一种方法可以在不重新映射缓冲区的情况下实现该行为。这对我来说也有点奇怪,因为我会想象一些开发人员想要它,或者这只是以错误的方式使用缓冲区?aMappedByteBuffer是一个ByteBuffer是一个缓冲区,在创建时定义了固定容量。因此,Buffer的语义阻止了它 正如@SotiriosDelimanolis和@fge提到的,操作系统语义也阻止了它。内存映射是以固定大小创建的,如果您在本机级别的地址超过该大小,您将得到一个SIGSEGV内存映射

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

a
MappedByteBuffer
是一个
ByteBuffer
是一个
缓冲区,在创建时定义了固定容量。因此,
Buffer
的语义阻止了它


正如@SotiriosDelimanolis和@fge提到的,操作系统语义也阻止了它。内存映射是以固定大小创建的,如果您在本机级别的地址超过该大小,您将得到一个
SIGSEGV

内存映射文件的概念是否也阻止了它?例如,一个进程尝试在分配给mmap的内存之后写入字节,这对操作系统意味着什么?