
前言
該如何學(xué)習(xí)Java虛擬機(jī)(JVM)內(nèi)容?今天Carson給你們奉上一份全面 & 詳細(xì)的JVM學(xué)習(xí)指南。
學(xué)習(xí)內(nèi)容
- Java虛擬機(jī)的內(nèi)存結(jié)構(gòu)
- Java對(duì)象:創(chuàng)建-存儲(chǔ)-訪問(wèn)過(guò)程
- Java對(duì)象:如何判斷存活原則(引用計(jì)數(shù)法 & 引用鏈法)
- 垃圾收集相關(guān):垃圾回收算法、常見的垃圾收集器
- 類加載相關(guān):類加載過(guò)程、類加載器(含雙親委派模型)
- 方法分派模型:靜態(tài)分派、動(dòng)態(tài)分派
知識(shí)點(diǎn)1:Java虛擬機(jī)的內(nèi)存結(jié)構(gòu)
Java虛擬機(jī)在運(yùn)行Java程序時(shí),會(huì)管理著一塊內(nèi)存區(qū)域:運(yùn)行時(shí)數(shù)據(jù)區(qū)。在運(yùn)行時(shí)數(shù)據(jù)區(qū)里,會(huì)根據(jù)用途進(jìn)行劃分:
-
Java虛擬機(jī)棧(棧區(qū)) - 本地方法棧
-
Java堆(堆區(qū)) - 方法區(qū)
- 程序計(jì)數(shù)器

針對(duì)每個(gè)內(nèi)存模型分區(qū)介紹請(qǐng)看文章:Carson帶你學(xué)JVM:圖文解析Java虛擬機(jī)內(nèi)存結(jié)構(gòu)
知識(shí)點(diǎn)2:Java對(duì)象-創(chuàng)建、內(nèi)存布局 & 訪問(wèn)定位
- 了解
Java對(duì)象從被創(chuàng)建、存儲(chǔ) & 怎么被使用的整個(gè)過(guò)程十分重要 - 對(duì)應(yīng)過(guò)程則是:對(duì)象創(chuàng)建、對(duì)象內(nèi)存布局、對(duì)象訪問(wèn)定位的三個(gè)過(guò)程。
具體請(qǐng)看文章:Carson帶你學(xué)JVM:Java對(duì)象的創(chuàng)建、內(nèi)存布局 & 訪問(wèn)定位全過(guò)程解析
知識(shí)點(diǎn)3:Java對(duì)象:如何判斷存活
- 垃圾收集器對(duì) Java堆里的對(duì)象 是否進(jìn)行回收的判斷準(zhǔn)則:Java對(duì)象是存活 or 死亡,只有判斷對(duì)象為死亡才會(huì)進(jìn)行回收;
- 在Java虛擬機(jī)中,判斷對(duì)象是否存活有2種方法:引用計(jì)數(shù)法、引用鏈法(可達(dá)性分析法)
具體請(qǐng)看文章:Carson帶你學(xué)JVM:Java對(duì)象如何判斷存活原則-引用計(jì)數(shù)法 & 引用鏈法
知識(shí)點(diǎn)4:垃圾收集
主要包括:垃圾收集算法、垃圾收集器。
1. 垃圾回收算法
- 不同的內(nèi)存區(qū)域采用不同的垃圾收集算法,而不同垃圾收集算法決定了垃圾收集的效率 & 效果;
- 垃圾收集算法 類型 分為4類,如下圖:

具體請(qǐng)看文章:Carson帶你學(xué)JVM:這是一份全面 & 詳細(xì)的垃圾收集算法(GC)講解攻略
2. 常見的垃圾收集器
垃圾收集器 是 垃圾收集算法 的具體實(shí)現(xiàn),現(xiàn)在主流的垃圾收集器有 7 種:

具體請(qǐng)看文章:Carson帶你學(xué)JVM:常見的垃圾收集器學(xué)習(xí)指南
知識(shí)點(diǎn)5:類加載
主要包括:類加載過(guò)程、類加載器(含雙親委派模型)
1. 類加載過(guò)程
分為五個(gè)步驟:加載 -> 驗(yàn)證 -> 準(zhǔn)備 -> 解析 -> 初始化,具體如下:

具體請(qǐng)看文章:Carson帶你學(xué)JVM:類加載的全過(guò)程解析
2. 類加載器
- 類加載器的作用是:實(shí)現(xiàn)類加載的功能 & 確定被加載類在 Java虛擬機(jī)中 的唯一性
- 類型主要包括:?jiǎn)?dòng)類加載器、擴(kuò)展類加載器、應(yīng)用程序類加載器
具體請(qǐng)看文章:Carson帶你學(xué)JVM:你真的了解類加載器嗎?(含雙親委派模型)
知識(shí)點(diǎn)6:方法分派模型
- 方法分派即指:確定執(zhí)行哪個(gè)方法的過(guò)程;
- 類型:靜態(tài)分派 & 動(dòng)態(tài)分派
具體請(qǐng)看文章:Carson帶你學(xué)JVM:方法分派模型-靜態(tài)分派、動(dòng)態(tài)分派
至此,關(guān)于Java虛擬機(jī)(JVM)的學(xué)習(xí)內(nèi)容講解完畢。Carson帶你學(xué)JVM系列文章,具體如下:
Carson帶你學(xué)JVM:這是一份全面 & 詳細(xì)的JVM學(xué)習(xí)指南
Carson帶你學(xué)JVM:圖文解析Java虛擬機(jī)內(nèi)存結(jié)構(gòu)
Carson帶你學(xué)JVM:Java對(duì)象的創(chuàng)建、內(nèi)存布局 & 訪問(wèn)定位全過(guò)程解析
Carson帶你學(xué)JVM:Java對(duì)象如何判斷存活原則-引用計(jì)數(shù)法 & 引用鏈法
Carson帶你學(xué)JVM:這是一份全面 & 詳細(xì)的垃圾收集算法(GC)講解攻略
Carson帶你學(xué)JVM:常見的垃圾收集器學(xué)習(xí)指南
Carson帶你學(xué)JVM:類加載的全過(guò)程解析
Carson帶你學(xué)JVM:你真的了解類加載器嗎?(含雙親委派模型)
Carson帶你學(xué)JVM:方法分派模型-靜態(tài)分派、動(dòng)態(tài)分派
歡迎關(guān)注Carson_Ho的簡(jiǎn)書
不定期分享關(guān)于安卓開發(fā)的干貨,追求短、平、快,但卻不缺深度。
