2013-06-24 29 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方法的部分也很有趣。