簡體   English   中英

WeakReference的Java文檔中的矛盾

[英]Contradiction in WeakReference's Java documentation

這個問題是關於了解WeakReference的Java文檔

當我讀到有關Java的WeakReference時,在文檔中碰到了這句話:

假設垃圾收集器在某個時間點確定對象是弱可訪問的。 到那時,它將自動清除對該對象的所有弱引用以及對所有其他弱可達對象的弱引用,這些對象都可以通過一系列強引用和軟引用從該對象到達

但這對我來說沒有意義。 假設我有一個WeakReference wrA引用對象A,另一個WeakReference wrB引用對象B。B強烈引用A(直接或間接通過鏈)。 現在根據該文檔,如果A變得弱可及,並且那時B已經弱可及,則wrB將與wrA一起清除。 但是,由於當時B的可達性已經很弱,難道不應該在第一次檢測到B的弱可達性的早期就清除wrB嗎?

由於當時B的可達性已經很弱,難道不應該在第一次檢測到B的弱可達性的早期就清除wrB嗎?

這是同時發生的,因此沒有更早的時間。 當GC啟動時,所有當時無法強行到達的對象(例如A和B)都可以在那時清理。

暫無
暫無

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

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