簡體   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