-1

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

4

2 回答 2

2

不一定只在堆中工作。但是它在堆栈中运行(或者,正如你所说的,“方法区域”)是没有意义的。一旦方法返回,分配在堆栈上的内存就会被释放。

那么,考虑到这一点,您希望垃圾收集器在堆栈中做什么?虽然理论上您可能希望它以极其长时间运行的方法释放内存,但在绝大多数情况下,该方法将在垃圾收集器开始查看它之前很久就返回。电脑速度很快。另外,如果您以长期运行的方法保存数据,那么无论如何仍有可能对它进行引用。

于 2013-07-16T18:48:02.220 回答
1

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

于 2013-07-16T18:45:28.693 回答