相信不少猿友看到標題就認為LZ是標題黨了,不過既然您已經被LZ忽悠進來了,那就好好的享受一頓算法大餐吧。不過LZ丑話說前面哦,這篇文章應該能讓各位徹底理解標記/清除算法,不過倘若各位猿友不能在五分鍾內看完,那就不是LZ的錯啦。 好了,前面只是小小開個玩笑,讓各位猿友 ...
引言 何為終極算法 其實就是現在的JVM采用的算法,並非真正的終極。說不定若干年以后,還會有新的終極算法,而且幾乎是一定會有,因為LZ相信高人們的能力。 那么分代搜集算法是怎么處理GC的呢 對象分類 上一章已經說過,分代搜集算法是針對對象的不同特性,而使用適合的算法,這里面並沒有實際上的新算法產生。與其說分代搜集算法是第四個算法,不如說它是對前三個算法的實際應用。 首先我們來探討一下對象的不同特性 ...
2013-08-23 11:58 5 10312 推薦指數:
相信不少猿友看到標題就認為LZ是標題黨了,不過既然您已經被LZ忽悠進來了,那就好好的享受一頓算法大餐吧。不過LZ丑話說前面哦,這篇文章應該能讓各位徹底理解標記/清除算法,不過倘若各位猿友不能在五分鍾內看完,那就不是LZ的錯啦。 好了,前面只是小小開個玩笑,讓各位猿友 ...
GC算法精解(五分鍾讓你徹底明白標記/清除算法) 相信不少猿友看到標題就認為LZ是標題黨了,不過既然您已經被LZ忽悠進來了,那就好好的享受一頓算法大餐吧。不過LZ丑話說前面哦,這篇文章應該能讓各位徹底理解標記/清除算法,不過倘若各位猿友不能在五分鍾內看完,那就不是LZ的錯 ...
本次LZ和各位分享GC最后兩種算法,復制算法以及標記/整理算法。上一章在講解標記/清除算法時已經提到過,這兩種算法都是在此基礎上演化而來的,究竟這兩種算法優化了之前標記/清除算法的哪些問題呢? 復制算法 我們首先一起來看一下復制算法的做法,復制 ...
1.分代收集算法 根據對象存活周期的不同將內存划分為幾塊,入JVM中的新生代,老年代,永久代,這樣就可以根據各年代特點分別采用最適當的GC算法 1.1在新生代使用復制算法: 因為新生代每次垃圾收集都能發現大批的對象已死,只有少量存活,因此選用復制算法,只需要付出少量存活對象的復制 ...
jvm區域總體分兩類,heap區和非heap區。heap區又分:Eden Space(伊甸園)、Survivor Space(幸存者區)、Tenured Gen(老年代-養老區)。 非heap區又分:Code Cache(代碼緩存區)、Perm Gen(永久代)、Jvm Stack(java虛擬機 ...
本文是GC相關的最后一篇,這次LZ只是羅列一下hotspot JVM中垃圾搜集器相關的重點參數,以及各個參數的解釋。廢話不多說,這就開始。 垃圾搜集器文章傳送門 JVM內存管理------JAVA語言的內存管理概述 ...
1.JVM內存模型 JVM內存模型如上圖,需要聲明一點,這是《Java虛擬機規范(Java SE 7版)》規定的內容,實際區域由各JVM自己實現,所以可能略有不同。以下對各區域進行簡短說明。 1.1程序計數器 程序計數器是眾多編程語言都共有的一部分,作用是標示下一條需要執行的指令 ...
標記-清除算法 此垃圾收集算法分為“標記”和“清除”兩個階段: 首先標記出所有需要回收的對象,在標記完成后統一回收所有被標記對象,它的標記過程前面已經說過——如何判斷對象是否存活/死去 死去的對象就會被標記,然后被清除。 它主要有兩點不足: 一個是效率問題,標記和清除兩個過程 ...