内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
在64位平台上,可以为java分配的最大堆空间是多少?是无限的吗?
理论上2 的64次方,但是显然有一些限制
根据这个FAQ,它只受到本地系统内存和交换空间的限制:
在64位虚拟机上,您可以使用64位寻址能力,从而导致最大Java堆大小仅受系统提供的物理内存和交换空间量的限制。 另请参见为什么我无法使用32位JVM获得更大的堆?
另外请记住,你需要通过命令行设置最大堆。没有-Xmx命令。没有它,根据相同的FAQ,Java在64位机器上使用64MB + 30%= 83.2mb作为默认最大堆。
java -Xmx1000g myClass
在我的机器上正常工作。但它似乎还没有支持't'修饰符,所以你不能指定最大的内存在兆兆字节但:)