本文摘自 占小狼 文章,本文比喻的很形象;
問題:
既然在觸發full gc的時候,年老代和持久代都會被清理,那么為什么還會出現oom問題?
而且對於強引用,當內存空間不足,java虛擬機寧願拋出oom錯誤,使程序異常終止,也不會靠隨意回收具有強引用的對象來解決內存不足問題;
那么full gc機制的存在有何意義?
還是說fgc主要針對的是駐扎在老年的的軟引用? 既然如此,對於四種引用的方式如何抉擇?總不能所有對象都創建引用隊列使用軟引用或弱引用吧?
R大回復:
這個問題的意思是:
為什么我請了佣人來收拾房間,我的房間還是會堆滿?那我還請佣人來干什么?
他不是號稱能把我房間里的垃圾都清理干凈么?
問題是如果你房間里堆得都是寶貝(或者看起來都是寶貝)的話,佣人也沒轍。
怎么判斷是不是寶貝呢?
就看主人有沒有用手抓着他它---被抓住的寶貝如果有連接到別的寶貝的話那被連接到的也算上。
用例抓住的肯定是寶貝,一點沒碰的肯定不是寶貝,半抓不抓着的先觀望。