欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:JVM之垃圾回收機制

柚子快報邀請碼778899分享:JVM之垃圾回收機制

http://yzkb.51969.com/

一、常量池的位置

?方法區(qū)和永久代以及元空間是什么關系呢? 方法區(qū)和永久代以及元空間的關系很像 Java 中接口和類的關系,類實現(xiàn)了接口,這里的類就可以看作是永久代和元空間,接口可以看作是方法區(qū),也就是說永久代以及元空間是 HotSpot 虛擬機對虛擬機規(guī)范中方法區(qū)的兩種實現(xiàn)方式。并且,永久代是 JDK 1.8 之前的方法區(qū)實現(xiàn),JDK 1.8 及以后方法區(qū)的實現(xiàn)變成了元空間

二、 堆的結(jié)構(gòu)

演變

?

永久代中存啟動類依賴的java類,不存在垃圾回收,關閉jvm才會回收內(nèi)存。?

打印堆結(jié)構(gòu)

-XX:+PrintGCDetails

三、堆中存放對象的規(guī)則?

1. 對象優(yōu)先分配在Eden伊甸園區(qū),如果Eden沒有空間了會發(fā)動一次Minor GC。

2.大對象會優(yōu)先存放在老年代,目的是減少垃圾回收的成本。實際上大對象存放在老年區(qū)是由jvm參數(shù)動態(tài)決定的。

G1回收器中:

-XX:G1HeapRegionSize //設置堆區(qū)域的大小

-XX:G1MixedGCLiveThresholdPercent//設置閾值絕對對象直接進入老年代

3.長期存活的對象將進入老年代

一般情況下,對象在剛誕生時會引入Eden區(qū),在經(jīng)歷一次Minor GC后如果仍然可以存活將進入幸存區(qū),并設置對象的年齡為1。對象每熬過一次MinorGC后年齡就增加1。

hotspot將所有對象的年齡從小到大進行排序,并將年齡進行加和,當加到某個對象年齡后,超過幸存區(qū)所有對象年齡和的50%時(這個百分比可以自設)。取這個對象的年齡和設置的晉升老年代年齡的閾值取其小的一個作為新的晉升老年代閾值。

設置幸存區(qū)晉升老年區(qū)閾值:

-XX:MaxTenuringThreshold

設置晉升老年代。幸存區(qū)對象年齡超過的百分比

-XX:TargetSurvivorRatio=percent

四、那些對象可以回收?

1.引用計數(shù)法

為每個對象分配一個計數(shù)器,當有引用時,計數(shù)器+1。當引用失效時,計數(shù)器-1。當計數(shù)器為0時,說明這個對象就是垃圾了。

局限:對象如果循環(huán)引用,計數(shù)器就永遠不是0.

2.可達性分析算法

通過一系列的稱為 “GC Roots” 的對象作為起點,從這些節(jié)點開始向下搜索,節(jié)點所走過的路徑稱為引用鏈,當一個對象到 GC Roots 沒有任何引用鏈相連的話,則證明此對象是不可用的,需要被回收。

哪些對象可以作為 GC Roots 呢?

虛擬機棧(棧幀中的局部變量表)中引用的對象本地方法棧(Native 方法)中引用的對象方法區(qū)中類靜態(tài)屬性引用的對象方法區(qū)中常量引用的對象所有被同步鎖持有的對象JNI(Java Native Interface)引用的對象

?被確定為可回收的對象“非死不可”嗎?

被判定為垃圾的對象還要經(jīng)歷兩次標記才會被回收,第一次標記:可達性算法判定不可達。還有進行一次條件判斷和一次篩選。當這個對象沒有覆蓋finalize?方法,或者已經(jīng)調(diào)用過了finalize?方法時,虛擬機判斷沒有必要執(zhí)行finalize?方法。第二次標記:除非待回收的對象和引用鏈上的對象關聯(lián),否則就會被回收。

五、怎么進行回收?(算法)

1.標記清除算法

標記出不需要回收的對象(根據(jù)可達性分析),將沒有標記的對象進行回收。

問題:標記清除這個過程效率不高;會產(chǎn)生大量的內(nèi)存碎片。

2.復制算法

將內(nèi)存分成兩塊,只使用一半。將使用的一半中保留的對象復制到?jīng)]使用的那一半。然后清空使用著的這一塊。

問題:可用內(nèi)存空間變小,對于存活對象數(shù)量的的老年代不適合(成本高效率低)。

3.標記整理算法

適合老年代,現(xiàn)將對象標記,然后將存活的對象向一端移動,并將界限以外的對象清理掉。

4.分代收集算法:

現(xiàn)代的虛擬機多采用分代收集算法,按照新生代和老年代的特點選擇合適的回收算法。例如新生代存在大量的垃圾回收,因此采用復制算法。老年代因為沒有額外的內(nèi)存空間分配擔保,采用標記清除算法或者標記整理算法。

柚子快報邀請碼778899分享:JVM之垃圾回收機制

http://yzkb.51969.com/

好文閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19061820.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄