我试图理解Java堆术语中年轻,老一代和永久世代的概念,更具体地说是三代之间的相互作用.
我的问题是:
我有一个程序,基本上需要大量内存。然而,由于某种原因,当我尝试将最大堆空间设置为 1.5GB 以上时,java 给出了一个错误。也就是说,运行
java -Xmx1582m [my program]
Run Code Online (Sandbox Code Playgroud)
没关系,但是
java -Xmx1583m [my program]
Run Code Online (Sandbox Code Playgroud)
给出错误
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Run Code Online (Sandbox Code Playgroud)
我在 Windows 命令行和 Eclipse 中都遇到了同样的错误。
这是我的系统配置:
Windows 7(64 位)
英特尔酷睿 2 四核 CPU
已安装 RAM:8.00 GB
Java版本1.6.0
奇怪的是,即使我运行的是 8 GB RAM 的 64 位操作系统,我也只能设置 1.5 GB 内存。有办法解决这个问题吗?