垃圾收集器是否只能在堆中工作?

时间:2013-07-16 18:43:23

标签: java jvm

garbage collector是否有必要仅在heap中有效?那么方法区呢?我知道垃圾收集器它会从内存堆区域中删除垃圾。

2 个答案:

答案 0 :(得分:2)

它不是必要它只能在堆中运行。但是它在堆栈中起作用是没有意义的(或者,就像你说的那样,“方法区域”)。一旦方法返回,就会释放在堆栈上分配的内存。

因此,考虑到这一点,您希望垃圾收集器在堆栈中?虽然从理论上讲你可能希望它在一个运行时间极长的方法中释放内存,但在绝大多数情况下,该方法会在垃圾收集器开始查看之前很久就会返回。电脑很快。另外,如果您持续使用长期运行的方法获取数据,那么无论如何仍有可能引用它。

答案 1 :(得分:1)

当方法的出口

上调用堆栈弹出方法框架时,方法区域会自动清理