重點:GC收集算法,監控內存溢出的方法,jvm優化方法,類加載器的方法,類的結構
一、jvm虛擬機將內存劃分爲6個部分:java虛擬機棧,本地方法棧,java堆,程序計數器,運行常量池,方法區
二、GC策略算法:1、引用計數算法 缺陷:循環引用的對象無法被回收
2、根搜索算法 是垃圾收集的基本問題。回收根不可到達的對象. 缺陷:需要停止程序
可以作爲根(GC roots)對象的有: 1、虛擬機棧中的引用的對象。
2、方法區中的類靜態屬性引用的對象。
3、方法區中的常量引用的對象。
4、本地方法棧中JNI的引用的對象。
二、常見的GC回收算法 1、標記-清除算法 2、複製算法 3、標記-整理算法
1、標記-清除算法 :當堆中的內存被耗盡的時候,就會停止整個程序。停下來做2項工作:一個是標記,二是清除
標記:遍歷所有GC-Roots能到達的對象,標記爲存活。
清除:遍歷堆中所有的對象,將沒有標記的對象全部清除。
缺陷:效率低下,需要遍歷堆中所有對象,而且還需要停止應用程序,清除的空間不是連續的