JVM 虚拟机图文详解!真香!秒懂!一点都不难!
生活随笔
收集整理的這篇文章主要介紹了
JVM 虚拟机图文详解!真香!秒懂!一点都不难!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言:
-
了解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,即與其他內存區域的總和 大于 物理內存限制
-
本文全面講解JVM中的內存模型 & 分區,總結如下
總結
以上是生活随笔為你收集整理的JVM 虚拟机图文详解!真香!秒懂!一点都不难!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源的13个Spring Boot 优秀
- 下一篇: 这应该是最通俗易懂的一篇Spring知识