JVM簡(jiǎn)單個(gè)人總結(jié)

      網(wǎng)友投稿 866 2022-05-30

      一、JVM分區(qū)

      1、方法區(qū)

      是所有線程共享的內(nèi)存區(qū)域,它用于存儲(chǔ)已被Java虛擬機(jī)加載的類信息、常量、靜態(tài)變量、即時(shí)編譯器編譯后的代碼等數(shù)據(jù)。

      2、堆

      A、是jvm內(nèi)存中最大的一塊,在虛擬機(jī)啟動(dòng)時(shí)開辟,存放所有數(shù)組和對(duì)象實(shí)例

      B、分為新生代和老年代

      3、程序計(jì)數(shù)器

      A、保存當(dāng)前線程正在執(zhí)行的字節(jié)碼指令的地址

      B、一個(gè)線程有一個(gè)程序計(jì)數(shù)器,會(huì)記住線程的運(yùn)行,不然線程掛起后就不知道在 干嘛了,只有run方法

      虛擬機(jī)棧

      里面有很多棧幀,一個(gè)方法一個(gè)棧楨,每個(gè)棧幀存(局部變量表、操作數(shù)棧、 動(dòng)態(tài)鏈接、出口)

      局部變量表:8個(gè)基本數(shù)據(jù)類型、對(duì)象引用地址、return類型

      操作數(shù)棧:進(jìn)行運(yùn)算的

      動(dòng)態(tài)鏈接:存放對(duì)其他方法的引用鏈接

      出口:正常return,不正常拋異常

      本地方法棧

      方法上帶native關(guān)鍵字,c和c++的

      Java內(nèi)存結(jié)構(gòu)

      判斷對(duì)象是否存活

      引用計(jì)數(shù)法:對(duì)象在創(chuàng)建時(shí),有計(jì)數(shù)器,有引用指向就+1,沒有引用指向了就 會(huì)認(rèn)為是垃圾,實(shí)現(xiàn)簡(jiǎn)單效率高,但是無法解決循環(huán)引用的問題

      JVM簡(jiǎn)單個(gè)人總結(jié)

      可達(dá)性分析算法,現(xiàn)在jvm使用的算法

      當(dāng)一個(gè)對(duì)象到root下沒有引用鏈?zhǔn)菫槔鴮?duì)象

      GC root:虛擬機(jī)棧、靜態(tài)引用的對(duì)象、常量引用的對(duì)象、本地方法引用的 對(duì)象

      優(yōu)點(diǎn):解決循環(huán)引用的問題

      2、垃圾回收機(jī)制,簡(jiǎn)稱GC

      程序運(yùn)行中會(huì)有大量?jī)?nèi)存垃圾,虛擬機(jī)會(huì)不定時(shí)進(jìn)行GC

      JVM堆分為新生代和老年代,新生代分為Eden、From Survivor、To Survivor區(qū), 這樣能更便于虛擬機(jī)管理內(nèi)存。

      新生代與老年代的內(nèi)存比值為1:2,(–XX:NewRatio 來指定)

      Eden:From:to = 8:1:1,( 可以通過參數(shù) –XX:SurvivorRatio 來設(shè)定 ),所 以新生代中有90% 可以使用的內(nèi)存。

      對(duì)象會(huì)先在Eden區(qū),當(dāng)新生代內(nèi)存不夠時(shí),經(jīng)過一次minor GC,存活下來的 對(duì)象轉(zhuǎn)入survivor區(qū),每一次gc存活下來,年齡+1,默認(rèn)15后轉(zhuǎn)入老年代

      持久代(永久代)就是方法區(qū),存放常量、靜態(tài)變量和類信息,難以回收

      3、垃圾回收算法

      A、引用計(jì)數(shù)法:當(dāng)引用為0時(shí),回收,優(yōu)缺點(diǎn)同上被認(rèn)為垃圾的對(duì)象

      B、標(biāo)記-清除算法:標(biāo)記就是上面說認(rèn)為是否為垃圾,清除是進(jìn)行清除,老年代應(yīng) 用多。

      C、標(biāo)記-整理算法:同上,但是清除后會(huì)將可用的內(nèi)存“整理”到一起,老年代使 用,解決內(nèi)存碎片化問題,但是移動(dòng)對(duì)象,需要更新引用。

      D、復(fù)制算法:和C相似,區(qū)別在于用兩塊內(nèi)存空間,適合survivor區(qū)兩塊

      E、JVM參數(shù)

      全局可在idea包的bin目錄下的idea.exe.vmoptions里配置保存

      調(diào)優(yōu)總結(jié),參考別人

      Java JVM

      版權(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)容。

      上一篇:華為云GaussDB榮獲2021信息技術(shù)應(yīng)用創(chuàng)新年度推薦案例
      下一篇:Huawei LiteOS簡(jiǎn)介
      相關(guān)文章
      午夜亚洲乱码伦小说区69堂| 国产啪亚洲国产精品无码| 亚洲AV之男人的天堂| 亚洲色中文字幕在线播放| 亚洲狠狠爱综合影院婷婷| 国产亚洲精aa在线看| 精品亚洲成a人片在线观看少妇| 久久亚洲AV永久无码精品| 国产亚洲高清在线精品不卡| 国产亚洲一卡2卡3卡4卡新区| 亚洲国产精品网站在线播放 | 亚洲黄色网址大全| 香蕉蕉亚亚洲aav综合| 亚洲av无码精品网站| 国产亚洲精品国产| 亚洲AV无码不卡在线播放| 亚洲国产精品热久久| 亚洲国产精品va在线播放 | 亚洲av永久无码精品天堂久久| 亚洲婷婷在线视频| 亚洲精品亚洲人成在线播放| 国内精品久久久久影院亚洲 | 亚洲午夜无码久久久久软件| 亚洲乱码国产乱码精华| 亚洲熟妇自偷自拍另欧美| 亚洲欧美第一成人网站7777| 亚洲av日韩专区在线观看| 一本色道久久88亚洲综合| 亚洲中文无韩国r级电影| 亚洲线精品一区二区三区| 亚洲va久久久噜噜噜久久狠狠| 婷婷久久久亚洲欧洲日产国码AV| 久久丫精品国产亚洲av不卡 | 中文字幕亚洲专区| 亚洲成av人影院| 亚洲国语在线视频手机在线| 2020久久精品亚洲热综合一本| 亚洲欧美综合精品成人导航| 亚洲高清免费视频| 亚洲男人的天堂www| 18亚洲男同志videos网站|