真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java架構(gòu)師必備技能—JVM系列:問君能有幾多愁,系統(tǒng)宕機(jī)重啟流-創(chuàng)新互聯(lián)

上回說到《不識(shí)JVM真面目,只緣身在增刪查改中》

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東勝,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

講述了一些有關(guān)于Jvm,線程,棧的有關(guān)技術(shù)知識(shí),還有兩個(gè)關(guān)于JVM的面試題:

  1. JVM什么情況下會(huì)發(fā)生棧內(nèi)存溢出?
  2. JVM中一次完整的GC流程是怎樣的?

GC——垃圾回收

完整意味著有多種情況

今天就接著將視頻內(nèi)容介紹完

可達(dá)性分析算法——GC Roots

判斷對(duì)象的存活

在Java, 可作為GC Roots的對(duì)象包括:

  1. 虛擬機(jī)棧(本地變量表)中引用的對(duì)象.
  2. 方法區(qū): 類靜態(tài)屬性引用的對(duì)象;
  3. 方法區(qū): 常量引用的對(duì)象;

Java架構(gòu)師必備技能—JVM系列:問君能有幾多愁,系統(tǒng)宕機(jī)重啟流

JVM中的堆

1、Java堆是垃圾回收器管理的主要區(qū)域

2、基于分代的方式

(1)新生代

  • Eden空間
  • From Survivor空間
  • To Survivor空間

(2)老年代

3、Java堆的大小參數(shù)設(shè)置

-Xmx 堆區(qū)內(nèi)存可被分配的大上限

-Xms 堆區(qū)內(nèi)存初始內(nèi)存分配的大小

Java架構(gòu)師必備技能—JVM系列:問君能有幾多愁,系統(tǒng)宕機(jī)重啟流

新生代為什么分三個(gè)區(qū)?

新生代垃圾回收算法——復(fù)制算法

該算法的核心是將可用內(nèi)存按容量劃分為大小相等的兩塊, 每次只用其中一塊, 當(dāng)這一塊的內(nèi)存用完, 就將還存活的對(duì)象復(fù)制到另外一塊上面, 然后把已使用過的內(nèi)存空間一次清理掉.

優(yōu)點(diǎn)

  • 不必考慮內(nèi)存碎片問題。
  • 效率高。

缺點(diǎn)

  • 可用容量減少為原來的一半,太浪費(fèi)了。

Java架構(gòu)師必備技能—JVM系列:問君能有幾多愁,系統(tǒng)宕機(jī)重啟流

最優(yōu)設(shè)置

90%的對(duì)象都是朝生夕死的,所以使用10%的空間用作交換區(qū),因?yàn)榻粨Q區(qū)必須有等量的兩個(gè),所以采用復(fù)制算法的新生代中的三個(gè)區(qū)采用8:1:1的默認(rèn)分配比例。

新生代對(duì)象的分配和回收

對(duì)象分配

  • 基本上新的對(duì)象優(yōu)先在Eden區(qū)分配。
  • 當(dāng)Eden區(qū)沒有足夠空間時(shí),會(huì)發(fā)起一次Minor GC。
  • Minor GC回收新生代采用復(fù)制回收算法的改進(jìn)版本
  • From和To的兩個(gè)交換區(qū),這兩個(gè)區(qū)只有一個(gè)區(qū)有數(shù)據(jù)
  • 采用8:1:1的默認(rèn)分配比例

(參數(shù)配置:-XX:SurvivorRatio )Eden區(qū)與Survivor區(qū)的大小比值。默認(rèn)是8

Java架構(gòu)師必備技能—JVM系列:問君能有幾多愁,系統(tǒng)宕機(jī)重啟流

思考:如果new對(duì)象過大?

老年代對(duì)象的分配和回收

老年代的對(duì)象一般情況下來自新生代

(1)長期存活對(duì)象進(jìn)入老年代

  • 年齡閾(yu)值:每個(gè)對(duì)象定義了年齡(Age)計(jì)數(shù)器, 經(jīng)過一次Minor GC(在交換區(qū))后年齡加1。
  • 對(duì)象年齡達(dá)到15次后將會(huì)晉升到老年代,老年代空間不夠時(shí)進(jìn)行Full GC。
  • 參數(shù)(-XX:MaxTenuringThreshold, 默認(rèn)15)。

(2)大對(duì)象直接進(jìn)入老年代

  • 超過Eden剩余空間
  • 超過一個(gè)參數(shù)值(-XX:PretenureSizeThreshold =XX, 無默認(rèn)值)

(3)對(duì)象提前晉升(組團(tuán))

動(dòng)態(tài)年齡判定:如果在Survivor空間中相同年齡所有對(duì)象大小的總和大于Survivor空間的一半,年齡大于或等于該年齡的對(duì)象就可以直接進(jìn)入老年代, 而無須等到晉升年齡.

Java架構(gòu)師必備技能—JVM系列:問君能有幾多愁,系統(tǒng)宕機(jī)重啟流

JVM中一次完整的GC流程是怎樣的?

從上兩節(jié)總結(jié)出的一個(gè)面試題

對(duì)象的正常流程

Eden -> Survivor區(qū) -> 老年代

  • 新生代 Minor GC
  • 老年代 Full GC

總結(jié)

內(nèi)存區(qū)域不夠用了,就會(huì)引發(fā)GC

作為架構(gòu)師該怎么做:Minor GC避免不了,F(xiàn)ull GC盡量避免

處理方式:保存堆棧快照日志、分析內(nèi)存泄露、調(diào)整內(nèi)存設(shè)置控制垃圾回收頻率,選擇適合的垃圾回收器

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站欄目:Java架構(gòu)師必備技能—JVM系列:問君能有幾多愁,系統(tǒng)宕機(jī)重啟流-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://weahome.cn/article/codeps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部