java - 在 Eclipse 中运行空程序大约需要 10 Mb。为什么?

标签 java memory

在 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/

相关文章:

java - 有或没有持有者的单例 = 惰性初始化 vs 急切初始化?

java - 使用 Mockito 验证递归方法调用的最佳实践

java - install4j:更改标签颜色

c++ - 为什么每次局部变量的地址都不一样?

python - 如何使用 python 在内存中查找 00000000 就像 C 使用 while != 00000000 的方式

php memory_get_usage(true) vs top %MEM

java - Hibernate中property-ref有什么用

java - 从特定单词后的字符串中获取子字符串

objective-c - 带有文件内容的数组 : results in crash

memory - 什么时候分配内存地址?