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