JVM筆記六-堆區(qū)知識(shí)之對(duì)象生命周期和GC的關(guān)系

      網(wǎng)友投稿 891 2025-03-31

      通過上一篇文章的學(xué)習(xí),我們對(duì)JVM堆區(qū)有了初步的認(rèn)識(shí),接下來,我們繼續(xù)展開講解堆區(qū)。

      24/ 64

      草稿箱

      代碼語言

      7 秒后保存

      上傳附件

      縮略圖:

      作為封面顯示在文章列表,可自定義設(shè)置

      標(biāo)簽設(shè)置 :

      請(qǐng)?zhí)砑訕?biāo)簽

      文章摘要 :

      JVM筆記六-堆區(qū)知識(shí)之對(duì)象生命周期和GC的關(guān)系

      0/ 200

      內(nèi)容為空時(shí)默認(rèn)顯示文章前200字,您可以手動(dòng)更改

      評(píng)論權(quán)限:

      文章創(chuàng)作類型:

      是否允許轉(zhuǎn)載:

      免責(zé)聲明:

      用戶承諾,發(fā)表的文章不存在任何知識(shí)產(chǎn)權(quán)問題并自行承擔(dān)全部責(zé)任,華為云社區(qū)可配合權(quán)利人進(jìn)行必要的維權(quán)配合工作。

      發(fā)表? 保存草稿? 預(yù)覽? 草稿箱

      售前咨詢熱線

      950808-1

      技術(shù)服務(wù)咨詢

      售前咨詢

      備案服務(wù)

      云市場(chǎng)咨詢

      法律聲明

      隱私政策

      版權(quán)所有 ? 華為軟件技術(shù)有限公司 2020? 保留一切權(quán)利? 蘇ICP備17040376號(hào)-32? 蘇B2-20130048號(hào)? 代理域名注冊(cè)服務(wù)機(jī)構(gòu):新網(wǎng)

      蘇公網(wǎng)安備 32011402010636號(hào)

      對(duì)象生命周期和GC的關(guān)系。控制臺(tái)

      我們已經(jīng)知道了,堆區(qū)的新生區(qū)分成了三個(gè)部分:伊甸園區(qū)、幸存者0區(qū)、幸存者1區(qū)。

      其中0區(qū)也叫from,1區(qū)也叫to區(qū)。但是這個(gè)from和to是固定不變的嗎?NO,NO,NO不是的。當(dāng)新生區(qū)執(zhí)行一次GC(YGC)后,from和to區(qū)會(huì)進(jìn)行交換。交換后,也就是在GC之后,誰空誰是to區(qū)。所以,from區(qū)和to區(qū)的位置和名分不是一成不變的。會(huì)發(fā)生變化的。

      Java堆從GC的角度可以分為:新生區(qū)和老年代。這個(gè)是從物理分的。

      新生代和老年代,占用堆區(qū)的比例是:1比2

      在新生代中的伊甸園區(qū)和幸存者0區(qū)、幸存者1區(qū)的占比是:8比1比1

      從邏輯來分的話,又有永久代(元空間)。如下圖:

      新生區(qū)GC (MinorGC) 的過程:復(fù)制->清空->互換

      1:復(fù)制

      eden、Survivor From區(qū) 復(fù)制到Survivor To區(qū),年齡+1

      首先,當(dāng)Eden區(qū)滿的時(shí)候會(huì)觸發(fā)第一次GC,把還存活的對(duì)象拷貝到survivorFrom區(qū),當(dāng)Eden區(qū)再次觸發(fā)GC的時(shí)候,會(huì)掃描Eden區(qū)和From區(qū)域,對(duì)這兩個(gè)區(qū)域進(jìn)行垃圾回收,經(jīng)過這次垃圾回收后還存活的對(duì)象,則直接復(fù)制到To區(qū)(如果有對(duì)象的年齡已經(jīng)達(dá)到了去往老年代的標(biāo)準(zhǔn),則這些達(dá)到標(biāo)準(zhǔn)的對(duì)象將會(huì)被復(fù)制到老年代區(qū)),同時(shí)把這些對(duì)象的年齡+1

      2:清空

      清空Eden、survivorFrom區(qū)

      然后,清空Eden和SuriviorFrom中的對(duì)象,也即是復(fù)制之后有交換。誰空誰做to區(qū)。

      3:SurvivorTo和SurvivorFrom互換

      最后,Survivor To和Survivor From互換,原來Survivor To成為下一次GC的Survivor From區(qū),部分對(duì)象會(huì)在From和To區(qū)中復(fù)制來復(fù)制去的,如此交換15次(由JVM參賽MaxTenuringThreshold決定的,這個(gè)參賽默認(rèn)值就是15),最終如果還是存活的對(duì)象,就把這些存活的對(duì)象存入到老年代區(qū)域。

      這個(gè)過程可以有個(gè)生活中的case.士兵到將軍的過程。士兵上戰(zhàn)場(chǎng),幸存下來,成班長,下次戰(zhàn)爭來臨的時(shí)候,班長帶著新的士兵繼續(xù)沖殺,幸存下來,班長升級(jí)成排長,以此類推。經(jīng)歷大大小小戰(zhàn)役十五次之后,升級(jí)成了將軍,進(jìn)入到年老代。

      Java7的永久代:

      JVM內(nèi)存管理的模型圖如下:

      Why?

      真相:經(jīng)過研究,不同對(duì)象的生命周期是不同的(廢話嘛,不同對(duì)象,操作鏈路長短不一樣,當(dāng)然生命周期不一樣了),98%的對(duì)象是臨時(shí)對(duì)象(臨時(shí)對(duì)象,就是用完就被回收了)。

      實(shí)際而言,方法區(qū)(Method Area)和堆區(qū)一樣,是各個(gè)線程共享的內(nèi)存區(qū)域,它用于存儲(chǔ)虛擬機(jī)加載的:類信息+普通常量+靜態(tài)常量+編譯器編譯后的代碼等等。雖然JVM規(guī)范將方法區(qū)描述為堆的一個(gè)邏輯部分,但是它卻還有一個(gè)別名:N0n-Heap(非堆),目的就是要和堆區(qū)分開的(這句話怎么理解?我們從小教育都知道,臺(tái)灣是中國的一部分,但是臺(tái)灣還有個(gè)別名:中華臺(tái)北。其目的就是臺(tái)灣想在國際上和中國區(qū)分開而已)。

      對(duì)于HotSpot虛擬機(jī),很多開發(fā)者習(xí)慣將方法區(qū)稱之為”永久代(Parmanent Gen)”,但嚴(yán)格本質(zhì)上說兩者不同。或者說使用永久代來實(shí)現(xiàn)方法區(qū)而已,永久代是方法區(qū)(相當(dāng)于是一個(gè)接口Interface)的一個(gè)實(shí)現(xiàn)。JDK1.7的版本中,已經(jīng)將原本存放永久代的字符串常量池移走了。

      三者之間在堆內(nèi)存中的關(guān)系,我們?cè)趤砜匆槐椋缦聢D:

      永久代:java7之前

      永久存儲(chǔ)區(qū)是一個(gè)常駐內(nèi)存區(qū)域,用于存放JDK自身所攜帶的Class,Interface的元數(shù)據(jù),也就是說它存儲(chǔ)的是運(yùn)行環(huán)境必須的類信息,被裝載進(jìn)此區(qū)域的數(shù)據(jù)是不會(huì)被垃圾回收器回收掉的,關(guān)閉JVM才會(huì)釋放此區(qū)域所占用的內(nèi)存。

      至此,我們已經(jīng)把JVM堆區(qū)講完了。那么接下來凱哥(凱哥Java:kaigejava)將接著講解JVM調(diào)優(yōu)命令了。歡迎大家一起繼續(xù)學(xué)習(xí)。

      JVM Java

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:北京進(jìn)銷存系統(tǒng)庫存管理(4分鐘之前已更新)
      下一篇:jenkins筆記
      相關(guān)文章
      久久亚洲AV成人出白浆无码国产 | 亚洲成人福利在线观看| 亚洲精品无码av片| 亚洲一区二区三区91| 67pao强力打造67194在线午夜亚洲| 亚洲精品A在线观看| 亚洲最大无码中文字幕| 亚洲精品国产精品国自产观看| 午夜亚洲AV日韩AV无码大全| 亚洲欧美日韩综合久久久| 亚洲日本人成中文字幕| 亚洲三级在线视频| 亚洲人成小说网站色| 天堂亚洲国产中文在线| 亚洲熟女综合色一区二区三区| 国产亚洲一区二区三区在线| 亚洲无线码一区二区三区| 亚洲日韩AV一区二区三区四区| 亚洲一区综合在线播放| 亚洲av激情无码专区在线播放| 亚洲国产综合专区电影在线| 77777_亚洲午夜久久多人| 亚洲码一区二区三区| 亚洲AV无码一区二区三区在线| 国产成人亚洲精品| 亚洲精品9999久久久久无码| 国产精品观看在线亚洲人成网| 亚洲国产精品一区二区久| 亚洲人成7777影视在线观看| 亚洲精品456人成在线| 亚洲AV无码专区在线观看成人| 亚洲一级毛片免观看| 亚洲天堂中文字幕| 亚洲欧洲高清有无| 亚洲成_人网站图片| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲黄黄黄网站在线观看| 亚洲精品无码永久在线观看你懂的| 亚洲国产高清人在线| 亚洲色WWW成人永久网址| 亚洲国产一区视频|