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