java - 垃圾收集器何时运行

时间:2016-07-14 10:44:01

标签: java garbage-collection garbage

我很难理解垃圾收集器(GC)是如何运行的。我所理解的是,当一个对象“丢失”其引用时,GC会销毁它以释放内存。我还读到没有人知道它什么时候会运行,但是,当我们必须编写一个使用大量内存的程序时,我们必须做些什么?强制垃圾收集是一个好主意,还是总是有一种很好的方式来避免调用GC? 如果GC生效,有没有办法“测试”,而不影响其操作? 我在另一篇文章中找到了以下示例来显示GC的操作:

for (File f : files) {
    String s = f.getName();
}

该帖子的作者说,在每次迭代之后,变量“s”不再使用,因此它被认为是“垃圾”。但是如果我在for循环之后添加System.out.println(s)之类的东西,仍然会使用“last”变量s,但是编译器不允许我们编译这段代码,所以这与GC无关......我的理解有什么问题吗? 最后一个问题:GC是否感谢GC我们在Java中不使用析构函数?

0 个答案:

没有答案