日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

虚拟机系列 | 执行引擎和垃圾回收

發(fā)布時間:2025/3/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 虚拟机系列 | 执行引擎和垃圾回收 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、執(zhí)行引擎

應(yīng)用程序經(jīng)過編譯,轉(zhuǎn)換為字節(jié)碼文件,字節(jié)碼加載到內(nèi)存空間并不能直接在操作系統(tǒng)上執(zhí)行,執(zhí)行引擎作為Java虛擬機核心的組成部分,作用就是將字節(jié)碼指令解釋/編譯為對應(yīng)系統(tǒng)平臺上的本地機器指令。

解釋器:虛擬機啟動時會根據(jù)預(yù)定義對字節(jié)碼采用逐行解釋的方式執(zhí)行,將每條字節(jié)碼文件中的內(nèi)容解釋為對應(yīng)系統(tǒng)平臺的本地機器指令執(zhí)行;

JIT編譯器:虛擬機將源代碼編譯成本地機器平臺相關(guān)的機器語言,并且尋找熱點高頻執(zhí)行的代碼將其放入元空間中,即元空間中存放的JIT緩存代碼;

垃圾回收:對于沒有任何引用的對象標記為垃圾,會被回收釋放內(nèi)存空間。

二、垃圾對象標記

1、引用計數(shù)法

每個對象保存一個整型引用計數(shù)器,用來記錄對象被引用的次數(shù),當該對象被一個對象引用時,計數(shù)器加1,當失去一個引用時,計數(shù)器減1;引用計數(shù)算法就是通過判斷對象的引用數(shù)量來決定對象是否可以被當做垃圾對象回收掉。

雖然引用計數(shù)法效率高,但是當兩個對象互相引用時會導(dǎo)致這兩個對象一直不會被回收,這是一個致命的缺陷。所以JVM并沒有采用該標記算法。

2、可達性分析算法

可達性分析算法是基于對象到根對象的引用鏈是否可達來判斷對象是否可以被回收;

運行程序把所有的引用關(guān)系鏈看作一張圖,通過GC-Roots根對象對象集合作為起始點,從每個根節(jié)點向下不斷搜索被根對象集合所連接的對象是否可達,搜索路徑稱為引用鏈(Reference-Chain),如果對象到GC-Roots沒有任何引用鏈存在,則說明此對象是不可用的,

  • 虛擬機棧中引用的對象;
  • 元空間中類靜態(tài)屬性引用的對象;
  • 元空間中常量引用的對象;
  • 本地方法棧中Native方法引用的對象;

相對于引用計數(shù)法算法,可達性分析算法則避免了循環(huán)引用導(dǎo)致的問題,同樣具備執(zhí)行高效的特點,也是JVM采用的標記算法。

三、垃圾回收機制

1、標記清除算法

標記-清除算法分為標記和清除兩個階段:

標記階段:從根對象集合進行掃描,對存活的對象對象標記;清除階段:再次掃描發(fā)現(xiàn)未被標記的對象并進行回收;

該算法效率不高,進行垃圾回收需要暫停應(yīng)用程序,同時會產(chǎn)生大量內(nèi)存碎片,后續(xù)程序運行過程中分配內(nèi)存占用較大的對象時,會有連續(xù)內(nèi)存不夠情況,容易觸發(fā)再一次垃圾收集動作。

2、標記整理算法

標記整理算法的標記過程類似標記清除算法,第一階段:標記出垃圾對象;第二階段:讓所有存活的對象都向內(nèi)存區(qū)一端移動;第三階段:直接清理掉邊界端以外的內(nèi)存,類似于磁盤整理的過程;

該垃圾回收算法效率不高,對象移動過程需要暫停應(yīng)用程序,適用于對象存活率高的場景(老年代)。

3、復(fù)制算法

復(fù)制算法將內(nèi)存按容量劃分為大小相等的兩塊,每次只使用其中的一塊,當使用的這塊的內(nèi)存用完,就將還存活著的對象復(fù)制到另外一塊空閑內(nèi)存上,然后使用過的內(nèi)存空間一次清理。

該算法實現(xiàn)簡單,運行效率高,但是內(nèi)存空間嚴重浪費,適用于對象存活率低的場景,比如新生代。

4、分代收集算法

當前市場上幾乎所有的虛擬機都采用該回收算法,分代收集算法根據(jù)年輕代和老年代的各自特點采用不同的算法機制,不同內(nèi)存區(qū)域中對象生命周期也不同,因此對堆內(nèi)存不同區(qū)域采用不同的回收策略可以提高垃圾回收執(zhí)行效率。通常情況新生代對象存活率低,回收頻繁,就采用復(fù)制算法;老年代存對象生命周期長,活率高,就用標記清除算法或者標記整理算法。

Java堆內(nèi)存一般可以分為新生代、老年代和永久代三個模塊,如下圖所示:

新生代

通常情況下,新創(chuàng)建的對象實例首先都是放在新生代空間中,所以追求快速的回收掉垃圾對象,一般情況下,新生代內(nèi)存按照8:1:1的比例分為一個eden區(qū)和兩個survivor(survivor0,survivor1)區(qū),對象實例大部分在Eden區(qū)中生成;

垃圾回收時先把eden區(qū)存活對象復(fù)制到S0區(qū),然后清空eden區(qū),當S0區(qū)也滿時,再將eden區(qū)和S0區(qū)存活對象復(fù)制到S1區(qū),然后清空eden和S0區(qū),之后交換S0區(qū)和S1區(qū)的角色,當S1區(qū)無法存放eden區(qū)和S0區(qū)的存活對象時,就將存活對象直接存移到老年代區(qū),當老年代區(qū)也滿了,觸發(fā)一次FullGC,即新生代、老年代都進行回收。

老年代

老年代區(qū)存放一些生命周期較長的對象,對象實例在新生代中經(jīng)歷了多次垃圾回收仍然存活的對象,會被移動到老年代區(qū)中。

四、源代碼地址

GitHub·地址 https://github.com/cicadasmile/java-base-parent GitEE·地址 https://gitee.com/cicadasmile/java-base-parent

推薦閱讀:編程體系整理

序號項目名稱GitHub地址GitEE地址推薦指數(shù)
01Java描述設(shè)計模式,算法,數(shù)據(jù)結(jié)構(gòu)GitHub·點這里GitEE·點這里☆☆☆☆☆
02Java基礎(chǔ)、并發(fā)、面向?qū)ο蟆eb開發(fā)GitHub·點這里GitEE·點這里☆☆☆☆
03SpringCloud微服務(wù)基礎(chǔ)組件案例詳解GitHub·點這里GitEE·點這里☆☆☆
04SpringCloud微服務(wù)架構(gòu)實戰(zhàn)綜合案例GitHub·點這里GitEE·點這里☆☆☆☆☆
05SpringBoot框架基礎(chǔ)應(yīng)用入門到進階GitHub·點這里GitEE·點這里☆☆☆☆
06SpringBoot框架整合開發(fā)常用中間件GitHub·點這里GitEE·點這里☆☆☆☆☆
07數(shù)據(jù)管理、分布式、架構(gòu)設(shè)計基礎(chǔ)案例GitHub·點這里GitEE·點這里☆☆☆☆☆
08大數(shù)據(jù)系列、存儲、組件、計算等框架GitHub·點這里GitEE·點這里☆☆☆☆☆

總結(jié)

以上是生活随笔為你收集整理的虚拟机系列 | 执行引擎和垃圾回收的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久午夜伦理 | 亚洲精品一区二区在线观看 | 熟妇人妻精品一区二区三区视频 | 一级片毛片 | 嫩草综合 | 手机在线亚洲 | 日韩一区二区三免费高清在线观看 | 麻豆传媒在线 | 大陆一级片 | 四虎影院国产精品 | 欧美大尺度床戏做爰 | 欧美20p| 国产做受高潮 | 色欧美色 | 青青视频免费在线观看 | 亚洲色图激情小说 | 黑森林av导航 | 黄色一级大片在线免费看产 | 网站国产 | 亚洲色图 美腿丝袜 | 国产调教打屁股xxxx网站 | 黑人玩弄人妻一区二 | 亚洲中文一区二区三区 | 狠狠激情 | 五月婷婷六月丁香 | 欧美日韩在线a | 中国一级片黄色一级片黄 | 三上悠亚激情av一区二区三区 | 天天色亚洲 | 成年激情网 | 欧洲亚洲另类 | 午夜av导航| 欧美一级日韩 | 国产wwwwww | 亚洲国产综合一区 | 天天插综合 | 欧美综合网站 | 小少妇哺乳喂奶播放 | 亚洲中文字幕在线一区 | 中文字幕一区二区三区视频 | 欧美成人免费在线视频 | 成年网站免费观看 | 美女福利在线 | 国模私拍一区二区 | 91视频看看 | 欧美三级视频在线观看 | 欧美高清性xxxxhd | 好吊妞在线观看 | 91亚洲精选 | 国产精品成av人在线视午夜片 | 亚洲爱爱av| 超碰在线a| 青青草日韩| 99精品视频播放 | 国产又大又粗又爽的毛片 | 一级肉体全黄毛片 | 久久久久高清 | 欧美区一区二区 | 黄网站色视频 | 91青青草视频 | 男人的天堂一区二区 | 精品区在线观看 | av免费一区 | 国产精品久久久久久久av福利 | 成人日b视频 | 成人网站免费观看入口 | 天天躁夜夜躁狠狠躁 | 黄片毛片在线观看 | 免费无码毛片一区二三区 | 亚洲成a人片 | www国产精品 | 最好看的中文字幕国语电影mv | 亚洲精品色 | 日本欧美在线观看 | 狠狠干网址 | 国产精品高清在线观看 | 韩国美女毛片 | 黄色精品视频在线观看 | heyzo朝桐光一区二区 | 美女张开双腿让男人捅 | 日韩久久一区二区 | 日韩激情在线视频 | www.好了av.com | 亚洲不卡中文字幕无码 | 韩国三级bd高清中字2021 | 国产又爽又黄免费软件 | 91麻豆一区二区三区 | 久久精品免费 | 少妇做爰k8经典 | 人妻与黑人一区二区三区 | 亚洲一区电影网 | 国产睡熟迷奷系列精品视频 | av有声小说一区二区三区 | 蜜臀一区二区三区精品免费视频 | 国产一区二区av在线 | ass极品水嫩小美女ass | 视频一区 国产 | 中国少妇av | 精品国产伦一区二区三区免费 |