想請問以下這個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