繁体   English   中英

双对象内存泄漏?

[英]double object memory leak?

这是C#程序的设置:

内部主类: ObjA MyObjA = new ObjA();

内部ObjA: ObjB MyObjB = new ObjB();

因此main引用了ObjA,而ObjA引用了ObjB。

现在,在主类中,我将MyObjA = null;设置MyObjA = null; 垃圾收集器会出现并摧毁ObjA吗? 还是由于引用了ObjB(尚未销毁)而将其保存?

您可以看到在后一种情况下这将是一个巨大的内存泄漏。 但是作为一个旁注,如果前一种情况是正确的,那么在销毁ObjB之前需要花1遍还是2遍GC?

另外,有人可以告诉我Android Java中会发生什么吗? 这些是我正在使用atm的两种语言。

MyObjA和MyObjB都将被销毁,因为它们无法从任何GC根目录访问(静态变量,堆栈变量之类的东西,或诸如此类的东西递归指向的东西)。

我不确定两次通过的意思。 Java垃圾收集器的细节有些复杂,但是,如果对象不可访问,则应在单个GC周期中清理它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM