13 張圖解 Java 中的記憶體模型
前言
- 瞭解Java中的物件、變數等存放的記憶體區域十分重要
- 本文將全面講解Java虛擬機器中的記憶體模型 & 分割槽,希望你們會喜歡
目錄
1.記憶體模型 & 分割槽
Java虛擬機器在執行Java程式時,會管理著一塊記憶體區域:執行時資料區
在執行時資料區裡,會根據用途進行劃分:
- Java虛擬機器棧(棧區)
- 本地方法棧
- Java堆(堆區)
- 方法區
- 程式計數器
下面,我將詳細介紹每個記憶體模型分割槽
2.Java堆
簡介
3. Java虛擬機器棧
簡介
4. 本地方法棧
簡介:十分類似Java虛擬機器棧,與Java虛擬機器區別在於:服務物件,即Java虛擬機器棧為執行 Java 方法服務;本地方法棧為執行 Native方法服務
5.方法區
簡介
注:其內部包含一個執行時常量池,具體介紹如下:
6.程式計數器
簡介
7. 額外知識:直接記憶體
- 定義:NIO類(JDK1.4引入)中基於通道和緩衝區的I/O方式 透過使用Native函式庫 直接分配 的堆外記憶體
- 特點:不受堆大小限制
不屬於虛擬機器執行時資料區的一部分 & 不在堆中分配 - 應用場景:適用於頻繁呼叫的場景
透過一個 儲存在Java堆中的DirectByteBuffer物件 作為這塊記憶體的引用 進行操作,從而避免在 Java 堆和 Native堆之間來回複製資料,提高使用效能 - 丟擲的異常:OutOfMemoryError,即與其他記憶體區域的總和 大於 實體記憶體限制
8. 總結
本文全面講解JVM中的記憶體模型 & 分割槽,總結如下
作者:Carson_Ho
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1747/viewspace-2826405/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java中的記憶體模型詳解Java記憶體模型
- Java記憶體模型最全詳解(5大模型圖解)Java記憶體大模型圖解
- Java併發中的記憶體模型Java記憶體模型
- Java的記憶體模型Java記憶體模型
- 你瞭解Java記憶體模型麼(Java7、8、9記憶體模型的區別)Java記憶體模型
- Java記憶體模型是什麼,為什麼要有Java記憶體模型,Java記憶體模型解決了什麼問題?Java記憶體模型
- 圖解JVM記憶體模型及JAVA程式執行原理圖解JVM記憶體模型Java
- 什麼是Java記憶體模型(JMM)中的主記憶體和本地記憶體?Java記憶體模型
- Java記憶體模型Java記憶體模型
- Java 記憶體模型Java記憶體模型
- JVM記憶體結構、Java記憶體模型和Java物件模型JVM記憶體Java模型物件
- Java記憶體模型FAQ(九)在新的Java記憶體模型中,final欄位是如何工作的Java記憶體模型
- Java 執行過程中的記憶體模型Java記憶體模型
- Java記憶體區域和記憶體模型Java記憶體模型
- Java記憶體模型FAQ(一) 什麼是記憶體模型Java記憶體模型
- JMM Java 記憶體模型Java記憶體模型
- Java物件記憶體模型Java物件記憶體模型
- Java記憶體模型-(1)Java記憶體模型
- 探索Java記憶體模型Java記憶體模型
- 理解Java記憶體模型Java記憶體模型
- Java面試- JVM 記憶體模型講解Java面試JVM記憶體模型
- java記憶體模型的實現Java記憶體模型
- Java記憶體模型的基礎Java記憶體模型
- 淺談JVM記憶體結構 和 Java記憶體模型 和 Java物件模型JVM記憶體Java模型物件
- Java記憶體模型FAQ(五)舊的記憶體模型有什麼問題?Java記憶體模型
- java記憶體模型——重排序Java記憶體模型排序
- Java記憶體模型簡介Java記憶體模型
- Java記憶體模型 - 簡介Java記憶體模型
- 淺談Java記憶體模型Java記憶體模型
- Java記憶體模型之前奏Java記憶體模型
- Concurrency(五: Java記憶體模型)Java記憶體模型
- 你真的瞭解Java記憶體模型JMM嗎?Java記憶體模型
- JVM的藝術—JAVA記憶體模型JVMJava記憶體模型
- 詳解JVM中的記憶體模型是什麼?JVM記憶體模型
- C中的記憶體分配模型記憶體模型
- JVM記憶體模型詳解JVM記憶體模型
- 從JVM設計角度解讀Java記憶體模型JVMJava記憶體模型
- 來,瞭解一下Java記憶體模型(JMM)Java記憶體模型