jar包是什么意思_面试难度五颗星:JVM有Full GC,为什么还会 OutOfMemoryError?
點擊上方藍色“后端面試那些事兒”,選擇“設為星標”
學最好的別人,做最好的我們
來源:R 大
zhihu.com/question/38511221
- 問題:
- R大回復
平時有逛知乎的習慣,一般對JVM相關話題比較感興趣。偶然看到這個問題,結果發現了一個很有意思的回復。
問題:
既然在觸發Full GC的時候,年老代和持久帶都會被清理,那么為什么還會出現OOM問題?
而且,對于強引用,當內存空間不足,Java虛擬機寧愿拋出OutOfMemoryError錯誤,使程序異常終止,也不會靠隨意回收具有強引用的對象來解決內存不足問題。
那么Full GC機制的存在有何意義?
還是說FGC主要針對的是駐扎在年老代的軟引用?既然如此,對于四種引用的方式如何抉擇?總不能所有對象都創建引用隊列使用軟引用或者弱引用吧?
R大回復
這個問題的意思是:
為什么我請了傭人來收拾房間,我的房間還是會堆滿?
那我還請傭人來干什么?
他不是號稱能把我房間里的垃圾都清理干凈的么?
問題是如果您房間里堆的都是寶貝(或者看起來都是寶貝)的話,傭人也沒轍。
怎么判斷是不是寶貝呢?
就看主人有沒有用手抓著它——被抓住的寶貝如果有連接到別的寶貝的話那被連接到的也算上。用力抓住的肯定是寶貝,一點沒碰的肯定不是寶貝,半抓不抓著的先觀望。
往期推薦
面試官:為什么 Spring Boot 的 jar 可以直接運行?
對于注冊中心,ZooKeeper、Eureka 哪個更合適?
高頻面試題:如何保證緩存與數據庫的雙寫一致性?
一起進大廠,每日學干貨
關注我,不迷路
點擊“閱讀原文”,領取 2020 年最新免費技術資料大全
↓↓↓總結
以上是生活随笔為你收集整理的jar包是什么意思_面试难度五颗星:JVM有Full GC,为什么还会 OutOfMemoryError?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: discuz安装_手动搭建 Discuz
- 下一篇: roads 构筑极致用户体验_长安马自达