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

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

這篇文章主要講解了“JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理”吧!

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

本文的主要內(nèi)容如下:

  • 內(nèi)存模型

  • 垃圾回收

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

各部分的功能

這幾個(gè)存儲區(qū)最主要的就是棧區(qū)和堆區(qū),那么什么是棧什么是堆呢?說的簡單點(diǎn),棧里面存放的是基本的數(shù)據(jù)類型和引用,而堆里面則是存放各種對象實(shí)例的。
JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

堆與棧分開設(shè)計(jì)是為什么呢?

  • 棧存儲了處理邏輯、堆存儲了具體的數(shù)據(jù),這樣隔離設(shè)計(jì)更為清晰

  • 堆與棧分離,使得堆可以被多個(gè)棧共享。

  • 棧保存了上下文的信息,因此只能向上增長;而堆是動(dòng)態(tài)分配

棧的大小可以通過-XSs設(shè)置,如果不足的話,會引起java.lang.StackOverflowError的異常

棧區(qū)

線程私有,生命周期與線程相同。每個(gè)方法執(zhí)行的時(shí)候都會創(chuàng)建一個(gè)棧幀(stack frame)用于存放 局部變量表、操作棧、動(dòng)態(tài)鏈接、方法出口。

存放對象實(shí)例,所有的對象的內(nèi)存都在這里分配。垃圾回收主要就是作用于這里的。

  • 堆得內(nèi)存由-Xms指定,默認(rèn)是物理內(nèi)存的1/64;最大的內(nèi)存由-Xmx指定,默認(rèn)是物理內(nèi)存的1/4。

  • 默認(rèn)空余的堆內(nèi)存小于40%時(shí),就會增大,直到-Xmx設(shè)置的內(nèi)存。具體的比例可以由-XX:MinHeapFreeRatio指定

  • 空余的內(nèi)存大于70%時(shí),就會減少內(nèi)存,直到-Xms設(shè)置的大小。具體由-XX:MaxHeapFreeRatio指定。

因此一般都建議把這兩個(gè)參數(shù)設(shè)置成一樣大,可以避免JVM在不斷調(diào)整大小。

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

這里記錄了線程執(zhí)行的字節(jié)碼的行號,在分支、循環(huán)、跳轉(zhuǎn)、異常、線程恢復(fù)等都依賴這個(gè)計(jì)數(shù)器。

方法區(qū)

類型信息、字段信息、方法信息、其他信息

總結(jié)

棧區(qū)線程私有,使用一段連續(xù)的內(nèi)存空間存放局部變量表、操作棧、動(dòng)態(tài)鏈接、方法出口-XSsStackOverflowError OutOfMemoryError
線程共享,生命周期與虛擬機(jī)相同保存對象實(shí)例-Xms -Xmx -XmnOutOfMemoryError
程序計(jì)數(shù)器線程私有、占用內(nèi)存小字節(jié)碼行號
方法區(qū)線程共享存儲類加載信息、常量、靜態(tài)變量等-XX:PermSize -XX:MaxPermSizeOutOfMemoryError

如何定義垃圾

有兩種方式,一種是引用計(jì)數(shù)(但是無法解決循環(huán)引用的問題);另一種就是可達(dá)性分析。

判斷對象可以回收的情況:

  • 顯示的把某個(gè)引用置位NULL或者指向別的對象

  • 局部引用指向的對象

  • 弱引用關(guān)聯(lián)的對象

垃圾回收的方法

Mark-Sweep標(biāo)記-清除算法

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

這種方法優(yōu)點(diǎn)就是減少停頓時(shí)間,但是缺點(diǎn)是會造成內(nèi)存碎片。

Copying復(fù)制算法

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

這種方法不涉及到對象的刪除,只是把可用的對象從一個(gè)地方拷貝到另一個(gè)地方,因此適合大量對象回收的場景,比如新生代的回收。

Mark-Compact標(biāo)記-整理算法

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

這種方法可以解決內(nèi)存碎片問題,但是會增加停頓時(shí)間。

Generational Collection 分代收集

最后的這種方法是前面幾種的合體,即目前JVM主要采取的一種方法,思想就是把JVM分成不同的區(qū)域。每種區(qū)域使用不同的垃圾回收方法。

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

上面可以看到堆分成三個(gè)區(qū)域:

  • 新生代(Young Generation):用于存放新創(chuàng)建的對象,采用復(fù)制回收方法,如果在s0和s1之間復(fù)制一定次數(shù)后,轉(zhuǎn)移到年老代中。這里的垃圾回收叫做minor GC;

  • 年老代(Old Generation):這些對象垃圾回收的頻率較低,采用的標(biāo)記整理方法,這里的垃圾回收叫做 major GC。

  • 永久代(Permanent Generation):存放Java本身的一些數(shù)據(jù),當(dāng)類不再使用時(shí),也會被回收。

這里可以詳細(xì)的說一下新生代復(fù)制回收的算法流程:

在新生代中,分為三個(gè)區(qū):Eden, from survivor, to survior。

  • 當(dāng)觸發(fā)minor GC時(shí),會先把Eden中存活的對象復(fù)制到to Survivor中;

  • 然后再看from survivor,如果次數(shù)達(dá)到年老代的標(biāo)準(zhǔn),就復(fù)制到年老代中;如果沒有達(dá)到則復(fù)制到to survivor中,如果to survivor滿了,則復(fù)制到年老代中。

  • 然后調(diào)換from survivor 和 to survivor的名字,保證每次to survivor都是空的等待對象復(fù)制到那里的。

垃圾回收器

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

串行收集器 Serial

這種收集器就是以單線程的方式收集,垃圾回收的時(shí)候其他線程也不能工作。
JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

并行收集器 Parallel

以多線程的方式進(jìn)行收集
JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

并發(fā)標(biāo)記清除收集器 Concurrent Mark Sweep Collector, CMS

大致的流程為:初始標(biāo)記--并發(fā)標(biāo)記--重新標(biāo)記--并發(fā)清除

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

G1收集器 Garbage First Collector

大致的流程為:初始標(biāo)記--并發(fā)標(biāo)記--最終標(biāo)記--篩選回收

JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理

感謝各位的閱讀,以上就是“JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前題目:JVM內(nèi)存模型與垃圾回收知識點(diǎn)整理
文章路徑:http://aaarwkj.com/article46/pdheeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)Google、網(wǎng)站收錄服務(wù)器托管

廣告

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

網(wǎng)站托管運(yùn)營
国产av爆操黑丝美女| 中国吞精囗交免费视频| 日本一区二区电影大全| 欧美视频在线观看香蕉| 日韩亚洲人成网站在线播放| 成年人免费在线观看国产| 国产国语久久91老女人| 日韩电影中文字幕一区| 日韩黄色成人免费片子| 日韩在线国产精品一区| 亚洲精品深夜福利视频| 欧美大片免费在线播放| 99在线视频午夜福利| 亚洲七七久久精品中文国产| 亚洲激情欧美激情在线| 中文字幕一区中出爽亚洲| 久久91超碰青草在哪里看| 国产精品情侣av自拍| 亚洲一区二区三区蜜桃av| 国产成人精品久久久亚洲| 国产免费很黄很色视频| 国产在线成年人免费观看| 欧美日韩精品视频专区| 免费直接在线看亚洲黄色| 熟女自拍偷拍视频播放| 农村精品少妇久久久久久| 午夜视频免费看一区二区| 91在线观看高清免费| 日本成人午夜福利电影| 十八禁无遮挡污污污网站| 欧美亚洲成人免费电影| 国产一区免费二区三区四区| 亚洲自偷精品视频自拍| 亚洲日本韩国一区二区| 国内一级黄色片免费观看| 欧美日本国产在线一区二区| 亚洲成人免费电影91| 青青草原在线免费视频| 成人黄片免费在线播放| 中文字幕av在线有码| 久久精品国产精品亚洲片|