2013-06-24 26 views
-2

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

我被问到了,但我不确定。

+4

这是可能的。 GC不是为了帮助你将所有的数据放到内存中,而是为了让你不用关心内存(de)的分配情况。 – zerkms

+0

http://stackoverflow.com/questions/597499/why-am-i-getting-an-out -of-sharp-application-in-my-c-sharp-application – OldProgrammer

+4

如果这种异常不可能发生,那么为什么会出现异常呢? –

回答

4

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

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

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

1

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

这是很明显的:如果你使用太多的内存,那么这个异常被触发。

垃圾收集器仅仅是摆脱数据不能再访问并不会引发在一个神奇的方式的可用内存量。

+0

嗨,大家好,这个问题是一个有效的答案,+1 – zerkms

+0

@zerkms,而答案是一个布尔值,我认为解释应该与它一致。只是说“是的,它确实”并不构成答案。 – gunr2171

+0

@ gunr2171:确实如此。至少它会教OP提出更好的问题。这不是回答者的错。 – zerkms

0

垃圾收集器仅声明“垃圾”对象的应用程序根目录并未提及了。如果托管堆已满,并且其中的每个对象仍由应用程序根目录引用(即应用程序仍然可以访问此对象),则您将获得OutOfMemoryException

我强烈建议你阅读this知道如何GC的作品。关于Finalize方法的部分也很有趣。