[問題] WeakReference vs PhantomReference
想請問以下這個Code,最後印出的In queue: null,
到底是WeakReference在成為garbage collection對象後,產生的?
還是PhantomReference產生的?
https://pastebin.com/eAsBcuPq
我比較有疑問的是
我本來以為是WeakReference產生的,所以我試著
把PhantomReference那段註解掉,只純粹呼叫checkQueue()
譬如: https://pastebin.com/d70XykSq
但就什麼都沒有列印出來了
想跟大家請教一下這方面的觀念,感謝!
我目前對這兩者的理解差別在於:
WeakReference是在成為garbage collection candidate時就會放入ReferenceQueue中,
也就是之後才會再執行finalize()等方法
PhantomReference是在完全清空後才會放入ReferenceQueue中
參考網址: https://goo.gl/lI1mD5
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.143.71
※ 文章網址: https://www.ptt.cc/bbs/java/M.1496036810.A.6AA.html
※ 編輯: uopsdod (180.217.143.71), 05/29/2017 13:48:48
※ 編輯: uopsdod (180.217.143.71), 05/29/2017 13:51:04
java 近期熱門文章
PTT數位生活區 即時熱門文章