簡體   English   中英

從Java堆收集舊對象

[英]Collecting old objects from java heap

我有Order_Item類實例,這些是GC根目錄的路徑(不包括幻像/弱引用/軟引用): 在此輸入圖像描述

我有幾個問題:
1)我不確定Order_Item是否將被垃圾回收。
我試圖運行System.gc(),並且該對象保留在堆中。
根據提供的圖像,是否可以收集它?

2)“本地堆棧”是什么意思? 據我了解,它是GC根目錄。 http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Fconcepts%2Fgcroots.html為什么某些對象(例如,訂單0x782032cf8)保留在“本機堆棧”中?

3)如果我從GC根目錄引用了對象A,該對象將不會被垃圾收集? 對?
如果是這樣,我的Order_Item對象無法被垃圾回收嗎?

4)如果3是正確的,我如何找到保持對象0x7821da5e0和0x782032cf8的對象,以及如何取消引用/刪除它們?

您不能真正強制垃圾收集器刪除給定的對象。 您知道,只要程序中給定點的引用可以訪問該對象,該對象就會保持活動狀態。 但是,如果對象變為“可收集”的,則可能會很快對其進行收集,但是如果對內存沒有壓力,它可能會在很長一段時間內四處閑逛。

通常,如果有足夠的內存,則沒有理由真正刪除對象。 我知道的唯一例外是密碼。 在這里,您使用char數組,並在使用后用廢話覆蓋它。

對於本機堆棧:您的鏈接指示本機堆棧保留外部資源,例如文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM