欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么理解Java垃圾回收機(jī)制-創(chuàng)新互聯(lián)

怎么理解Java 垃圾回收機(jī)制,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

在雙塔等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷(xiāo)推廣,外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),雙塔網(wǎng)站建設(shè)費(fèi)用合理。

什么是自動(dòng)垃圾回收

自動(dòng)垃圾回收是一種在堆內(nèi)存中找出哪些對(duì)象在被使用,還有哪些對(duì)象沒(méi)被使用,并且將后者刪掉的機(jī)制。

所謂使用中的對(duì)象(已引用對(duì)象),指的是程序中有指針指向的對(duì)象;而未使用中的對(duì)象(未引用對(duì)象),則沒(méi)有被任何指針給指向,因此占用的內(nèi)存也可以被回收掉。

在用 C 之類(lèi)的編程語(yǔ)言時(shí),程序員需要自己手動(dòng)分配和釋放內(nèi)存。而 Java 不一樣,它有垃圾回收器,釋放內(nèi)存由回收器負(fù)責(zé)。本文接下來(lái)將介紹垃圾回收機(jī)制的基本過(guò)程。

第一步:標(biāo)記

垃圾回收的第一步是標(biāo)記。垃圾回收器此時(shí)會(huì)找出哪些內(nèi)存在使用中,還有哪些不是。

怎么理解Java 垃圾回收機(jī)制

上圖中,藍(lán)色表示已引用對(duì)象,橙色表示未引用對(duì)象。垃圾回收器要檢查完所有的對(duì)象,才能知道哪些有被引用,哪些沒(méi)。如果系統(tǒng)里所有的對(duì)象都要檢查,那這一步可能會(huì)相當(dāng)耗時(shí)間。

第二步:清除

這一步會(huì)刪掉標(biāo)記出的未引用對(duì)象。

怎么理解Java 垃圾回收機(jī)制

內(nèi)存分配器會(huì)保留指向可用內(nèi)存的引用,以供分配新對(duì)象。

壓縮

為了提升性能,刪除了未引用對(duì)象后,還可以將剩下的已引用對(duì)象放在一起(壓縮),這樣就能更簡(jiǎn)單快捷地分配新對(duì)象了。

怎么理解Java 垃圾回收機(jī)制

為什么需要分代垃圾收集?

之前說(shuō)過(guò),逐一標(biāo)記和壓縮 Java 虛擬機(jī)里的所有對(duì)象非常低效:分配的對(duì)象越多,垃圾回收需時(shí)就越久。不過(guò),根據(jù)統(tǒng)計(jì),大部分的對(duì)象,其實(shí)用沒(méi)多久就不用了。

來(lái)看個(gè)例子吧。(下圖中,豎軸代表已分配的字節(jié),而橫軸代表程序運(yùn)行時(shí)間)

怎么理解Java 垃圾回收機(jī)制

上圖可見(jiàn),存活(沒(méi)被釋放)的對(duì)象隨運(yùn)行時(shí)間越來(lái)越少。而圖中左側(cè)的那些峰值,也表明了大部分對(duì)象其實(shí)都挺短命的。

JVM 分代

根據(jù)之前的規(guī)律,就可以用來(lái)提升 JVM 的效率了。方法是,把堆分成幾個(gè)部分(就是所謂的分代),分別是新生代、老年代,以及永生代。

怎么理解Java 垃圾回收機(jī)制

新對(duì)象會(huì)被分配在新生代內(nèi)存。一旦新生代內(nèi)存滿了,就會(huì)開(kāi)始對(duì)死掉的對(duì)象,進(jìn)行所謂的小型垃圾回收過(guò)程。一片新生代內(nèi)存里,死掉的越多,回收過(guò)程就越快;至于那些還活著的對(duì)象,此時(shí)就會(huì)老化,并最終老到進(jìn)入老年代內(nèi)存。

Stop the World 事件—— 小型垃圾回收屬于一種叫 "Stop the World" 的事件。在這種事件發(fā)生時(shí),所有的程序線程都要暫停,直到事件完成(比如這里就是完成了所有回收工作)為止。

老年代用來(lái)保存長(zhǎng)時(shí)間存活的對(duì)象。通常,設(shè)置一個(gè)閾值,當(dāng)達(dá)到該年齡時(shí),年輕代對(duì)象會(huì)被移動(dòng)到老年代。最終老年代也會(huì)被回收。這個(gè)事件成為 Major GC。

Major GC 也會(huì)觸發(fā)STW(Stop the World)。通常,Major GC會(huì)慢很多,因?yàn)樗婕暗剿写婊顚?duì)象。所以,對(duì)于響應(yīng)性的應(yīng)用程序,應(yīng)該盡量避免Major GC。還要注意,Major GC的STW的時(shí)長(zhǎng)受年老代垃圾回收器類(lèi)型的影響。

永久代包含JVM用于描述應(yīng)用程序中類(lèi)和方法的元數(shù)據(jù)。永久代是由JVM在運(yùn)行時(shí)根據(jù)應(yīng)用程序使用的類(lèi)來(lái)填充的。此外,Java SE類(lèi)庫(kù)和方法也存儲(chǔ)在這里。

如果JVM發(fā)現(xiàn)某些類(lèi)不再需要,并且其他類(lèi)可能需要空間,則這些類(lèi)可能會(huì)被回收。

世代垃圾收集過(guò)程

現(xiàn)在你已經(jīng)理解了為什么堆被分成不同的代,現(xiàn)在是時(shí)候看看這些空間是如何相互作用的。 后面的圖片將介紹JVM中的對(duì)象分配和老化過(guò)程。

首先,將任何新對(duì)象分配給 eden 空間。 兩個(gè) survivor 空間都是空的。

怎么理解Java 垃圾回收機(jī)制

當(dāng) eden 空間填滿時(shí),會(huì)觸發(fā)輕微的垃圾收集。

怎么理解Java 垃圾回收機(jī)制

引用的對(duì)象被移動(dòng)到第一個(gè) survivor 空間。 清除 eden 空間時(shí),將刪除未引用的對(duì)象。

怎么理解Java 垃圾回收機(jī)制

在下一次Minor GC中,Eden區(qū)也會(huì)做同樣的操作。刪除未被引用的對(duì)象,并將被引用的對(duì)象移動(dòng)到Survivor區(qū)。然而,這里,他們被移動(dòng)到了第二個(gè)Survivor區(qū)(S1)。

此外,第一個(gè)Survivor區(qū)(S0)中,在上一次Minor GC幸存的對(duì)象,會(huì)增加年齡,并被移動(dòng)到S1中。待所有幸存對(duì)象都被移動(dòng)到S1后,S0和Eden區(qū)都會(huì)被清空。注意,Survivor區(qū)中有了不同年齡的對(duì)象。

怎么理解Java 垃圾回收機(jī)制

在下一次Minor GC中,會(huì)重復(fù)同樣的操作。不過(guò),這一次Survivor區(qū)會(huì)交換。被引用的對(duì)象移動(dòng)到S0,。幸存的對(duì)象增加年齡。Eden區(qū)和S1被清空。

怎么理解Java 垃圾回收機(jī)制

 此幻燈片演示了 promotion。 在較小的GC之后,當(dāng)老化的物體達(dá)到一定的年齡閾值(在該示例中為8)時(shí),它們從年輕一代晉升到老一代。

怎么理解Java 垃圾回收機(jī)制

隨著較小的GC持續(xù)發(fā)生,物體將繼續(xù)被推廣到老一代空間。

怎么理解Java 垃圾回收機(jī)制

所以這幾乎涵蓋了年輕一代的整個(gè)過(guò)程。 最終,將主要對(duì)老一代進(jìn)行GC,清理并最終壓縮該空間。

怎么理解Java 垃圾回收機(jī)制

關(guān)于怎么理解Java 垃圾回收機(jī)制問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

分享文章:怎么理解Java垃圾回收機(jī)制-創(chuàng)新互聯(lián)
分享URL:http://aaarwkj.com/article6/jdhig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、微信小程序云服務(wù)器、軟件開(kāi)發(fā)、網(wǎng)站策劃、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
青青草网站在线观看视频| 最近av中文字幕电影| 青青草手机在线视频免费观看| 国产精品久久一国产精品| 欧美日韩国产看片一区二区| 美女少妇性高潮的视频| 精品亚洲一区二区在线| 国语对白视频在线观看| 好狼色欧美激情国产区| 又黄又湿又刺激中文字幕| 一区二区三区亚洲精品在线| 少妇高潮特黄在线观看| 国产精品久久久久大屁股精品性色| 国产欧美日韩精品三级| 色综合av男人的天堂| 99久久中文字幕伊人| 免费国产午夜福利在线| 一本之道久久成人综合| 精品人妻一区二区三区免费视频| 国产亚洲精品一区二区三在线观看| 99精品亚洲一区二区| 久草视频亚洲免费在线| 久久精品一本久久99精品| 四虎在线观看免费资源| 亚洲性感美女男人的天堂| 亚洲黄色成人在线观看| 久久99热最新地址获取| 精品少妇人妻av不卡久久| 中国一区二区三区毛片| 亚洲综合一区国产精品| 久久亚洲一区二区内射| 日本加勒比不卡在线视频| 四虎在线观看最新入口| 精品视频偷拍一区二区三区| 农村女人91熟女熟妇| 亚洲女人天堂av在线| 国产青青草成人在线视频| 亚洲熟女精品不卡一区二区| 九九视频免费观看5| 美女少妇性高潮的视频| 日韩高清不卡在线视频|