前言
該如何學習Java虛擬機(JVM)內(nèi)容烹吵?今天Carson給你們奉上一份全面 & 詳細的JVM學習指南。
學習內(nèi)容
- Java虛擬機的內(nèi)存結(jié)構(gòu)
- Java對象:創(chuàng)建-存儲-訪問過程
- Java對象:如何判斷存活原則(引用計數(shù)法 & 引用鏈法)
- 垃圾收集相關(guān):垃圾回收算法籽懦、常見的垃圾收集器
- 類加載相關(guān):類加載過程、類加載器(含雙親委派模型)
- 方法分派模型:靜態(tài)分派氛魁、動態(tài)分派
知識點1:Java虛擬機的內(nèi)存結(jié)構(gòu)
Java
虛擬機在運行Java
程序時暮顺,會管理著一塊內(nèi)存區(qū)域:運行時數(shù)據(jù)區(qū)。在運行時數(shù)據(jù)區(qū)里秀存,會根據(jù)用途進行劃分:
-
Java
虛擬機棧(棧區(qū)) - 本地方法棧
-
Java
堆(堆區(qū)) - 方法區(qū)
- 程序計數(shù)器
針對每個內(nèi)存模型分區(qū)介紹請看文章:Carson帶你學JVM:圖文解析Java虛擬機內(nèi)存結(jié)構(gòu)
知識點2:Java對象-創(chuàng)建捶码、內(nèi)存布局 & 訪問定位
- 了解
Java
對象從被創(chuàng)建、存儲 & 怎么被使用的整個過程十分重要 - 對應過程則是:對象創(chuàng)建或链、對象內(nèi)存布局惫恼、對象訪問定位的三個過程。
具體請看文章:Carson帶你學JVM:Java對象的創(chuàng)建澳盐、內(nèi)存布局 & 訪問定位全過程解析
知識點3:Java對象:如何判斷存活
- 垃圾收集器對 Java堆里的對象 是否進行回收的判斷準則:Java對象是存活 or 死亡祈纯,只有判斷對象為死亡才會進行回收;
- 在Java虛擬機中叼耙,判斷對象是否存活有2種方法:引用計數(shù)法腕窥、引用鏈法(可達性分析法)
具體請看文章:Carson帶你學JVM:Java對象如何判斷存活原則-引用計數(shù)法 & 引用鏈法
知識點4:垃圾收集
主要包括:垃圾收集算法、垃圾收集器筛婉。
1. 垃圾回收算法
- 不同的內(nèi)存區(qū)域采用不同的垃圾收集算法簇爆,而不同垃圾收集算法決定了垃圾收集的效率 & 效果;
- 垃圾收集算法 類型 分為4類爽撒,如下圖:
具體請看文章:Carson帶你學JVM:這是一份全面 & 詳細的垃圾收集算法(GC)講解攻略
2. 常見的垃圾收集器
垃圾收集器 是 垃圾收集算法 的具體實現(xiàn)冕碟,現(xiàn)在主流的垃圾收集器有 7 種:
具體請看文章:Carson帶你學JVM:常見的垃圾收集器學習指南
知識點5:類加載
主要包括:類加載過程、類加載器(含雙親委派模型)
1. 類加載過程
分為五個步驟:加載 -> 驗證 -> 準備 -> 解析 -> 初始化匆浙,具體如下:
具體請看文章:Carson帶你學JVM:類加載的全過程解析
2. 類加載器
- 類加載器的作用是:實現(xiàn)類加載的功能 & 確定被加載類在 Java虛擬機中 的唯一性
- 類型主要包括:啟動類加載器、擴展類加載器厕妖、應用程序類加載器
具體請看文章:Carson帶你學JVM:你真的了解類加載器嗎首尼?(含雙親委派模型)
知識點6:方法分派模型
- 方法分派即指:確定執(zhí)行哪個方法的過程;
- 類型:靜態(tài)分派 & 動態(tài)分派
具體請看文章:Carson帶你學JVM:方法分派模型-靜態(tài)分派、動態(tài)分派
至此软能,關(guān)于Java虛擬機(JVM)的學習內(nèi)容講解完畢迎捺。Carson帶你學JVM系列文章,具體如下:
Carson帶你學JVM:這是一份全面 & 詳細的JVM學習指南
Carson帶你學JVM:圖文解析Java虛擬機內(nèi)存結(jié)構(gòu)
Carson帶你學JVM:Java對象的創(chuàng)建查排、內(nèi)存布局 & 訪問定位全過程解析
Carson帶你學JVM:Java對象如何判斷存活原則-引用計數(shù)法 & 引用鏈法
Carson帶你學JVM:這是一份全面 & 詳細的垃圾收集算法(GC)講解攻略
Carson帶你學JVM:常見的垃圾收集器學習指南
Carson帶你學JVM:類加載的全過程解析
Carson帶你學JVM:你真的了解類加載器嗎凳枝?(含雙親委派模型)
Carson帶你學JVM:方法分派模型-靜態(tài)分派、動態(tài)分派
歡迎關(guān)注Carson_Ho的簡書
不定期分享關(guān)于安卓開發(fā)的干貨跋核,追求短岖瑰、平、快砂代,但卻不缺深度蹋订。