在 Java 中,这个程序:
public class test {
public static void main(String[] args) {
try {
Thread.sleep(7000);
System.exit(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
当我在 Eclipse 中运行它并检查系统监视器以查看它拥有约 10Mb 的内存时,它只是 hibernate 7 秒。在没有 Eclipse 的终端中运行程序也需要 10Mb。
这些兆字节被保留用于什么?
环境: java版本“1.7.0_09-icedtea” OpenJDK 运行时环境 (fedora-2.3.3.2.fc17-i386) OpenJDK 服务器虚拟机(版本 23.2-b09,混合模式)
最佳答案
jvm内部管理内存。应用程序启动时会加载很多东西。此外,jvm 会抢先从操作系统获取内存,这样创建新对象时的开销就会更小。
这个article涵盖了jvm内存使用的一些方面。
摘录:
已分配内存是JVM分配的内存总量,而已用内存是实际使用的内存量。
关于java - 在 Eclipse 中运行空程序大约需要 10 Mb。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992772/