13 張圖解 Java 中的內(nèi)存模型
閱讀本文大概需要 2.8 分鐘。
來自:juejin.im/post/6844903677279338509
1. 內(nèi)存模型 & 分區(qū)
Java虛擬機(jī)棧(棧區(qū)) 本地方法棧 Java堆(堆區(qū)) 方法區(qū) 程序計(jì)數(shù)器

2. Java堆


3. Java虛擬機(jī)棧


4. 本地方法棧
??5. 方法區(qū)



6. 程序計(jì)數(shù)器

??7. 額外知識(shí):直接內(nèi)存
定義:
NIO類(JDK1.4引入)中基于通道和緩沖區(qū)的I/O方式 通過使用Native函數(shù)庫(kù) 直接分配 的堆外內(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é)

微信掃描二維碼,關(guān)注我的公眾號(hào)
朕已閱?
評(píng)論
圖片
表情

