前言
- 了解
Java
中的對(duì)象、變量等存放的內(nèi)存區(qū)域十分重要 - 本文將全面講解
Java
虛擬機(jī)中的內(nèi)存模型 & 分區(qū)拓型,希望你們會(huì)喜歡
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)存布局 & 訪問定位全過程解析
Carson帶你學(xué)JVM:Java對(duì)象如何判斷存活原則-引用計(jì)數(shù)法 & 引用鏈法
Carson帶你學(xué)JVM:這是一份全面 & 詳細(xì)的垃圾收集算法(GC)講解攻略
Carson帶你學(xué)JVM:常見的垃圾收集器學(xué)習(xí)指南
Carson帶你學(xué)JVM:類加載的全過程解析
Carson帶你學(xué)JVM:你真的了解類加載器嗎劣挫?(含雙親委派模型)
Carson帶你學(xué)JVM:方法分派模型-靜態(tài)分派、動(dòng)態(tài)分派
目錄
1. 內(nèi)存模型 & 分區(qū)
-
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ù)器
-
- 下面,我將詳細(xì)介紹每個(gè)內(nèi)存模型分區(qū)
2. Java堆
-
示意圖
簡(jiǎn)介
關(guān)于垃圾回收的講解會(huì)在接下來推出的文章里講解
3. Java虛擬機(jī)棧
-
示意圖
簡(jiǎn)介
4. 本地方法棧
- 示意圖
- 簡(jiǎn)介
十分類似Java
虛擬機(jī)棧靠闭,與Java虛擬機(jī)區(qū)別在于:服務(wù)對(duì)象帐我,即
Java虛擬機(jī)棧為執(zhí)行Java
方法服務(wù);本地方法棧為執(zhí)行Native
方法服務(wù)
5. 方法區(qū)
-
示意圖
簡(jiǎn)介
- 注
其內(nèi)部包含一個(gè)運(yùn)行時(shí)常量池愧膀,具體介紹如下:
6. 程序計(jì)數(shù)器
- 示意圖
- 簡(jiǎn)介
7. 額外知識(shí):直接內(nèi)存
- 定義:
NIO
類(JDK
1.4引入)中基于通道和緩沖區(qū)的I/O
方式 通過使用Native
函數(shù)庫 直接分配 的堆外內(nèi)存 - 特點(diǎn):不受堆大小限制
不屬于虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)的一部分 & 不在堆中分配
- 應(yīng)用場(chǎng)景:適用于頻繁調(diào)用的場(chǎng)景
通過一個(gè) 存儲(chǔ)在
Java
堆中的DirectByteBuffer
對(duì)象 作為這塊內(nèi)存的引用 進(jìn)行操作拦键,從而避免在Java
堆和Native
堆之間來回復(fù)制數(shù)據(jù),提高使用性能
- 拋出的異常:
OutOfMemoryError
檩淋,即與其他內(nèi)存區(qū)域的總和 大于 物理內(nèi)存限制
8. 總結(jié)
- 本文全面講解JVM中的內(nèi)存模型 & 分區(qū)芬为,總結(jié)如下
- 接下來我會(huì)對(duì)Java虛擬機(jī)(JVM)進(jìn)行詳細(xì)的分析,歡迎關(guān)注Carson_Ho的簡(jiǎn)書蟀悦,不定期分享關(guān)于安卓開發(fā)的干貨碳柱,追求短、平熬芜、快莲镣,但卻不缺深度。
請(qǐng)點(diǎn)贊涎拉!因?yàn)槟愕墓膭?lì)是我寫作的最大動(dòng)力瑞侮!
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)存布局 & 訪問定位全過程解析
Carson帶你學(xué)JVM:Java對(duì)象如何判斷存活原則-引用計(jì)數(shù)法 & 引用鏈法
Carson帶你學(xué)JVM:這是一份全面 & 詳細(xì)的垃圾收集算法(GC)講解攻略
Carson帶你學(xué)JVM:常見的垃圾收集器學(xué)習(xí)指南
Carson帶你學(xué)JVM:類加載的全過程解析
Carson帶你學(xué)JVM:你真的了解類加載器嗎半火?(含雙親委派模型)
Carson帶你學(xué)JVM:方法分派模型-靜態(tài)分派越妈、動(dòng)態(tài)分派