对垃圾收集器有什么保证?
根据我的研究,我找到了:
如果仍然存在对内存的引用,则不会对其进行垃圾回收
如果没有参考:
当它是GC是非确定性的
当GC释放时,终结器将在释放内存之前运行.
无法保证终结者的顺序(所以不要假设父母将在孩子之前运行).
但我真正想知道的是:
是否保证所有内存最终都将被垃圾收集并且终结器(析构函数)在对象上运行(假设程序退出很好).例如,最终退出时没有内存压力的应用程序会强制GC查找所有对象并确保调用终结器(析构函数)(包括静态成员变量)?
我在这个页面上找到了一个引用:http: //www.c-sharpcorner.com/UploadFile/tkagarwal/MemoryManagementInNet11232005064832AM/MemoryManagementInNet.aspx
此外,默认情况下,当应用程序退出时,不会为无法访问的对象调用Finalize方法,以便应用程序可以快速终止.
但我不确定这句话是多么权威.
我还找到了文档: CriticalFinalizerObject