即使使用垃圾收集器,是否可能在运行时发生内存不足异常?
我被问到这个问题,但我不确定。
答案 0 :(得分:4)
是的,如果您使用太多内存,则会发生该异常。
垃圾收集器只是摆脱了你永远不会再访问的内存。
......那个答案是如此明显,也许你问过的不同于你的意思?如果是,请澄清。
答案 1 :(得分:1)
是的,之前确实发生过这件事。
很明显:如果使用太多内存,则会触发此异常。
垃圾收集器只是摆脱了你不能再访问的数据,并没有以神奇的方式增加可用内存量。
答案 2 :(得分:0)
垃圾收集器仅声明Application Root不再引用的“垃圾”对象。如果托管堆已满,并且应用程序根中仍然引用其中的每个对象(意味着应用程序仍可访问该对象),您将获得OutOfMemoryException
。
我强烈建议您阅读this以了解GC的工作原理。关于Finalize
方法的部分也非常有趣。