我创建了一个 Main 类,其中包含如下主要方法:
public class Main {
public static void main(String[] _args) {
System.out.println("free:" + Runtime.getRuntime().freeMemory()
+ ". max:" + Runtime.getRuntime().maxMemory());
}
}
然后我用-Xms2m 和-Xmx2m 运行课程。输出是这样的:
free:2984840. max:7471104
那么,我的问题是,如果 1 兆字节是 1048576 字节,那么显示的可用内存不是 -Xms 中设置的 2 兆字节。当我将 -Xms 选项增加到 3m 时,它显示免费添加兆字节。任何人都可以解释发生了什么,.?
-Xmx 选项会发生不同的情况,当我将其增加到 3m、4m 和 5m 时,最大值保持显示 7471104。大约是 71.44m。我真的不明白这两个选项是如何工作的。
这是我设置 -Xms3m 和 -Xmx6m 时打印的内容
free:4033416. max:7471104
任何人都可以帮助,.?
谢谢你 :)
注意:我正在使用 Win7 x64 和 Java 1.6 更新 35。