-2

即使使用垃圾收集器,是否有可能在运行时发生内存不足异常?

有人问我这个问题,但我不确定。

4

3 回答 3

4

是的,如果您使用太多内存,则会发生该异常。

垃圾收集器只是摆脱了你永远不会再访问的内存。

......那个答案是如此明显,也许你问的东西与你的意思不同?如果是这样,请澄清。

于 2013-06-24T01:50:58.183 回答
1

是的,它确实发生在我之前。

很明显:如果你使用了太多内存,就会触发这个异常。

垃圾收集器只是删除您无法再访问的数据,并且不会以神奇的方式增加可用内存量。

于 2013-06-24T01:51:02.027 回答
0

垃圾收集器仅声明应用程序根不再引用的“垃圾”对象。如果托管堆已满,并且其中的每个对象仍被应用程序根引用(意味着该对象仍可被应用程序访问),您将获得一个OutOfMemoryException.

我强烈建议您阅读本文以了解 GC 的工作原理。关于Finalize方法的部分也很有趣。

于 2013-06-24T02:39:46.450 回答