亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

深入理解java虛擬機(2)------垃圾收集器和內存分配策略

2019-11-14 15:25:58
字體:
來源:轉載
供稿:網友

GC可謂是java相較于C++語言,最大的不同點之一。

1.GC回收什么?

上一篇講了內存的分布。

其中程序計數器棧,虛擬機棧,本地方法棧 3個區域隨著線程而生,隨著線程而死。這些棧的內存,可以理解為在編譯期已經確定。

方法結束,或者線程結束時,內存就自然被回收了。

 一個interface的多個實現類,需要的內存可能不一樣,一個方法的多個分支需要的內存也不一樣,我們只有在程序運行的時候,才知道會創建那些對象,需要多少內存。

這部分分配和回收都是動態的,GC所關注的就是這部分內存。

2.回收的標準:

java堆里面幾乎存放著所有的對象實例。對象實例如果已經不再被使用,那這段內存就應該被回收,這個時候就是GC上場的時候。

 

2.1 引用計數法:

給對象一個引用計數,當計數為0的時候,可以理解為,該對象不再被使用,可以釋放內存。

但是這個方法很難解決一個問題:對象間的相互引用問題。

舉個例子:

對象objA和objB都有字段instance。

objA.instance = objB;

objB.instance = objA;

它們沒有其他引用。

但是它們的引用計數不可能為0.于是無法通知GC回收它們。

2.2 可達性分析算法:

主流的商用程序語言的主流實現中,都稱為可達性分析。

這個算法的基本思想通過GC Roots的對象作為起始點。當一個對象,到起始點,沒有連接的時候,可以理解為,這個節點的內存可以釋放。

從圖中可以看到,object5,object6,object7 這些對象會被GC回收。

 

2.3 引用

無論通過何種算法來實現GC,都和引用有關。

java1.2之后,引用分為 強引用,軟應用,弱引用,已經虛引用。

強引用是java普遍存在的一種狀態,類似new 一個對象。強引用不會被GC回收。

軟引用,軟引用是描述還有用,但未必要存在的對象。它的生存時間是,當內存不足時,也就是快要OOM的時候,GC會回收它。

弱引用,就是非必要的的對象。被弱引用指向的對象,只能生存到下一次GC之前。

虛引用,虛引用的目的是為了當GC發生時,可以收到一個系統通知。不會對引用對象產生任何影響。

2.4 對象如何判斷要回收:

GC會對不可達的對象,做第一次標記。

當該對象執行finalize方法后,或者沒有覆蓋finalize方法,這回被第二次標記,這個時候,GC會被這段內存清理。

當對象執行finalize方法時,JVM會把它放在一個F-queue里面,這是這個對象實例拯救自己的最后機會。

它只需要在finalize里面,把this賦給某個變量。

任何一個對象finalize只會被執行一次。

 

3.垃圾收集的算法

 

3.1標記清楚算法:

先標記需要回收的內存,標記完成后,統一回收。

這個是最基礎的算法,其他算法都是以此為基礎。

3.2 復制算法

就是將內存分為大小相等的2塊,每次只使用一塊,當一塊用完的時候,就將還存活的部分,復制到另一塊空間,然后

把已經使用的那塊做一次性清理。

這樣就不用考慮內存碎片的情況。只是這種算法代價就是一半的內存空間。

3.3 標記--整理算法

讓所有存活的對象移向一端,然后直接清理掉端邊界以外的內存。

3.4 分代算法

根據對象存活周期的不同,分為新生代,和老年代。

在新生代,每次回收都有很多對象被回收,可以選用復制算法,只需要少量存活的對象復制成本就可以。

而老年代,存活的時間比較久,必須使用標記清楚或者標記整理方法。

3.4.1 枚舉根節點

在選擇處理GC Roots方法時,GC Root所在的上下文可能有數百兆,所以在判斷GC Roots的時候,應該確保一致性,JVM

應該停止所有java執行線程。所以GC是占用CPU作為代價!

 

4.內存分配策略

4.1對象優先在Eden分配

大多數情況下,對象在新生代的Eden區中分配內存,當Eden區內存不足時,java虛擬機將發生GC,

釋放不需要的對象。

4.2 大對象直接在老年代

大對象,是指需要大量連續空間的對象,比如很長的字串或者數組。

比大對象更糟糕的事情就是,遇到一群很快無用的 大對象。

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

對象開始放在新生代eden區,如果度過一次GC,進入Survivor空間,對象年齡設置為1.

以后,每一次GC,年齡就加1。

當年齡到達一定的閥值以后,就回進入老年代。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩另类| 国产精品美女av| 日韩av免费在线播放| 日韩美女视频中文字幕| 日韩黄色av网站| 欧美激情第6页| 91精品国产九九九久久久亚洲| 最近2019中文字幕在线高清| 国产成人在线一区| 国产91网红主播在线观看| 亚洲第一中文字幕| 欧美精品videosex性欧美| 中文字幕亚洲综合久久筱田步美| 久久久久国色av免费观看性色| 国产精品福利观看| 久久这里只有精品99| 欧美丰满老妇厨房牲生活| 久久免费精品视频| 91黑丝在线观看| 欧美成人一二三| 成人有码在线播放| 亚洲va久久久噜噜噜| 日韩风俗一区 二区| 中文字幕日韩欧美在线| 亚洲精品久久久一区二区三区| 国内自拍欧美激情| 国产91色在线| 亚洲激情在线观看| 九九视频这里只有精品| 国产精品99蜜臀久久不卡二区| 97视频免费在线看| 亚洲码在线观看| 亚洲视频在线播放| 最近免费中文字幕视频2019| 日韩在线www| 在线亚洲国产精品网| 97国产真实伦对白精彩视频8| 亚洲自拍高清视频网站| 欧美伊久线香蕉线新在线| 韩国欧美亚洲国产| 久久国产精品99国产精| 欧美性在线视频| 久久精品91久久久久久再现| 高跟丝袜欧美一区| 久久久久国产精品免费| 97免费中文视频在线观看| 亚洲美腿欧美激情另类| 91精品久久久久久久| 中文字幕久热精品在线视频| 91久久久久久| 国产欧美精品va在线观看| 久久亚洲精品网站| 久久精品国产亚洲7777| 日韩电影中文字幕在线| 欧美精品做受xxx性少妇| 国产精品成人国产乱一区| 亚洲国产精久久久久久久| 国产精品xxxxx| 国产欧美日韩免费看aⅴ视频| 久久色免费在线视频| 国产一区二中文字幕在线看| 欧美日韩另类在线| 国产香蕉精品视频一区二区三区| 日韩电影在线观看永久视频免费网站| 亚洲欧美一区二区三区久久| 亚洲精品一区久久久久久| 欧美黑人国产人伦爽爽爽| 欧美日韩中文在线观看| 国产成人在线播放| 久久免费国产精品1| 亚洲第一免费网站| 国产在线精品自拍| 菠萝蜜影院一区二区免费| 久久精品国产成人精品| 亚洲网站在线观看| 亚洲高清不卡av| 日韩激情片免费| 久久久精品久久久久| 久久久久亚洲精品| 久久亚洲国产成人| 亚洲国产美女精品久久久久∴| 超碰91人人草人人干| 国内免费久久久久久久久久久| 国产裸体写真av一区二区| 亚洲欧美国产一本综合首页| 成人久久一区二区三区| 45www国产精品网站| 韩国欧美亚洲国产| 欧洲成人午夜免费大片| 亚洲国产精品高清久久久| 国产精品稀缺呦系列在线| 91在线无精精品一区二区| 国产成人精品在线视频| 欧美第一黄网免费网站| 日本一欧美一欧美一亚洲视频| 国产a∨精品一区二区三区不卡| 久久免费视频这里只有精品| 91视频免费网站| 成人性生交大片免费观看嘿嘿视频| 色yeye香蕉凹凸一区二区av| 亚洲qvod图片区电影| 日韩av电影在线免费播放| 久久精品电影一区二区| 精品亚洲国产成av人片传媒| 国产性色av一区二区| 亚洲欧美激情视频| 黄网动漫久久久| 欧美精品在线观看91| 国产一区二区三区免费视频| 亚洲精品美女在线观看播放| 久热精品视频在线免费观看| 久久国产加勒比精品无码| 亚洲有声小说3d| 亚洲免费av片| 欧美精品午夜视频| 色伦专区97中文字幕| 亚洲一级黄色片| 北条麻妃久久精品| 国产97人人超碰caoprom| 操日韩av在线电影| 日韩av中文在线| 色中色综合影院手机版在线观看| 欧美日韩亚洲高清| 欧美日韩999| 亚洲a中文字幕| 91视频九色网站| 久久精品视频在线观看| 中国人与牲禽动交精品| 国产成人精品亚洲精品| 久久91精品国产| 亚洲精品中文字幕有码专区| 国产午夜精品免费一区二区三区| 国产精品成人播放| 亚洲免费伊人电影在线观看av| 亚洲少妇激情视频| 久久香蕉国产线看观看av| 欧美另类在线观看| 日韩精品在线第一页| 欧美性猛交xxxx乱大交3| 日韩av免费在线播放| 日韩精品高清视频| 在线播放日韩精品| 成人午夜高潮视频| 97超级碰在线看视频免费在线看| 久久99久久久久久久噜噜| 日韩资源在线观看| 亚洲欧美三级在线| 久久久91精品国产一区不卡| 日韩av影视综合网| 欧美日韩成人网| 亚洲欧美制服综合另类| 欧美多人乱p欧美4p久久| 亚洲最大成人免费视频| 亚洲r级在线观看| 国产亚洲精品久久久久久牛牛| 欧美专区第一页| 国产精品亚洲精品| 亚洲xxxxx| 高清欧美性猛交xxxx黑人猛交| 国产va免费精品高清在线观看| 91精品在线观| 亚洲高清色综合| 亚洲网在线观看| 欧美极品欧美精品欧美视频|