Eri*_*tas 6 c# garbage-collection
据我所知,在像Java或C#这样的托管语言中,有一种称为垃圾收集器的东西,每隔一段时间检查一次是否有任何不再引用的对象实例,因此是完全孤立的,然后清除掉记忆 但是,如果程序中的任何变量都没有引用两个对象,而是相互引用(如事件订阅),则垃圾回收器将看到此引用而不清除内存中的对象.
为什么是这样?为什么垃圾收集器不能确定任何对象都不能被正在运行的程序的任何活动部分引用并处理它们.
大多数GC不再使用引用计数.它们通常(在Java和.NET中都是这种情况)使用来自根对象的可达性.对象的根集是全局变量和堆栈引用的实例.直接或间接从该集合可以到达的任何东西都是活着的.内存的其余部分无法访问,因此容易被收集.