为什么这个非常小的Java程序看起来会泄漏内存?

时间:2016-06-09 15:59:30

标签: java

我在Windows 7上使用jdk1.7.0_25编译它:

public class Test {             
    public static void main(String[] args) throws Exception
    {
        while (true){
            System.out.print(".");
        }                 
    }        
}

但是当我运行它并在任务管理器中查看java.exe时,内存会逐渐增加。

有没有人对此有解释?这是我正在运行的程序的缩减版本,我怀疑它包含内存泄漏。

(在写这篇文章时,java.exe以大约25Mb的内存开始:我现在处于100Mb)。

1 个答案:

答案 0 :(得分:0)

System缓存必须存储逐渐增加的句点字符串,因为它未被释放。您的记忆将增加System.out中存储的文本量。这是预期的行为。

一个hacky解决方案是在每个句点之后打印一个退格符("\b")。