JVM系列隨筆主要是對《深入理解Java虛擬機:JVM高級特性與最佳實踐 第2版》的學習總結 概述 GC(Garbage Collection)是垃圾收集的簡稱,比Java的歷史更加久遠。經過半個多世紀的發展,已經實現了自動化。作為學習,我們需要搞清楚GC的三件問題 ...
引言: 前面的文章提到,在 版本以后,Java內存區域:Heap包括了PSYoungGen ParOldGen,以及堆外內存MetaSpace。JVM 在進行GC時,並非每次都對上面三個內存區域一起回收的,大部分時候回收的都是新生代。由於新生代和老年代的內存空間大小不同以及對象存活率不同,所以針對不同區域JVM采用了不同的GC,不同的GC是通過不同的算法實現的。在Jdk 中,按照回收區域的不同,把 ...
2019-10-15 11:54 0 950 推薦指數:
JVM系列隨筆主要是對《深入理解Java虛擬機:JVM高級特性與最佳實踐 第2版》的學習總結 概述 GC(Garbage Collection)是垃圾收集的簡稱,比Java的歷史更加久遠。經過半個多世紀的發展,已經實現了自動化。作為學習,我們需要搞清楚GC的三件問題 ...
四大基本算法思想 貪心算法 定義 假設一個問題比較復雜,暫時找不到全局最優解,那么我們可以考慮把原問題拆成幾個小問題(分而治之思想),分別求每個小問題的最優解,再把這些“局部最優解”疊起來,就“當作”整個問題的最優解了。漫畫:五分鍾學會貪心算法 貪心算法,又名貪婪法,是尋找最優解問題 ...
在判斷哪些內存需要回收和什么時候回收用到GC 算法,本文主要對GC 算法進行講解。 JVM垃圾判定算法 常見的JVM垃圾判定算法包括:引用計數算法、可達性分析算法。 引用計數算法(Reference Counting) 引用計數算法是通過判斷對象的引用數量來決定對象是否可以被回收 ...
GC 作為一個長久的話題,從誕生[1]至今也算是經歷了六七十年了,對於很多習慣於使用 Java/Python 的同學來說,對於內存的管理可能會稍微更陌生一些,因為這些語言在語言層面就屏蔽了內存的分配和管理,幫助我們減少了超多的麻煩。但是,在幫助我們減少麻煩的同時,也帶來了很多問題,其中一個就是內存 ...
生存還是死亡 對象是否需要被垃圾收集器回收主要有兩種方式:引用計數法和可達性分析算法 引用計數法 給對象添加一個引用計數器,每當有一個地方引用他的時候,計數器的數值就+1,當引用失效時,計數器就-1;任何時候計數器的數值都為0的對象時不可能再被使用的。 客觀的來說,引用計數法實現簡單,判定 ...
一、首先什么是垃圾(garbage)? 沒有引用指向的一個或多個對象叫做垃圾; 二、如何找到這些垃圾 一般有兩種方法: 引用計數 根可達算法 1、第一種叫做引用計數法(reference count),有一個引用指向一個對象,計數就加 ...
GC的階段 對每個對象而言,垃圾回收分為兩個階段:finalization和reclamation。 finalization: 指運行這個對象的finalize的方法。 reclamation: 回收被這個對象使用的內存。 GC ...
四種GC算法 GC垃圾回收,首先需要判斷哪些對象需要回收 判斷對象存活 可達性分析: 從GC Roots開始向下查詢,如果一個對象到任何一個GC Root對象都沒有一個引用鏈相連的話,說明此對象不可用。 四個GC Root對象 JVM棧中引用的對象 方法區靜態屬性引用 ...