Java虛擬機器內部結構
Java虛擬機器的內部體系結構也許很少有人去關心,因為對於Java程式設計師來說,一般只需要跟API打交道就可以了。這些體系結構只是Java虛擬機器內部的結構而已。但是如果理解了其內部結構,對於我們開發專案,以及排除系統中的相關故障是由幫助的。
先看看總體結構圖,如下:
各部分的主要功能分別是:
1. 類裝載子系統:負責Java型別的裝載連線以及初始化。Java虛擬機器有兩種類裝載器,啟動類裝載器和使用者自定義類裝載器。啟動類裝載器是JAVA虛擬機器實現的一部分,自定義裝載器是JAVA程式的一部分。由不同類裝載器裝載的類將被放在不同的名稱空間中。
2. 方法區:方法區主要儲存2類資訊,一是被裝載的型別資訊,從class檔案流中提取。二是型別中的類(靜態)變數。方法區中的資訊是所有執行緒共享的,所以對方法區的資料訪問必須設計成為執行緒安全的。
3. Java堆:存放java執行時建立的所有類例項或陣列。一個java虛擬機器例項中只存在一個堆空間,所有執行緒共享,因此設計程式時也要考慮到多執行緒訪問堆資料的同步問題。
4. Java棧:每當啟動一個新執行緒,JAVA虛擬機器都會建立一個新的JAVA棧,用於儲存執行緒的執行狀態。JAVA棧中的資料都是私有的,執行緒之間不能相互訪問各自的棧。當一個執行緒呼叫一個方法時,方法的區域性變數儲存在該執行緒的棧中。所以方法內建立的區域性變數都不存線上程安全問題。
5. PC暫存器:有叫程式計數器。每個執行緒都有自己的程式計數器,線上程啟動的時候自動建立。PC暫存器裡總是儲存下一條將被執行的指令的“地址”。
6. 本地方法棧:儲存呼叫本地方法相關的資料。這裡基本是一個全新的不受虛擬機器限制的區域。
7. 執行引擎:執行引擎是java虛擬機器的核心。其行為由一系列的指令集來定義。
相關文章
- Java 虛擬機器之三:Java虛擬機器的記憶體結構Java虛擬機記憶體
- 從ubuntu虛擬機器外部訪問虛擬機器內部資訊Ubuntu虛擬機
- Java虛擬機器——類檔案結構Java虛擬機
- 淺析Java虛擬機器結構與機制[轉]Java虛擬機
- Java虛擬機器,類檔案結構深度解析Java虛擬機
- Java虛擬機器之Class類檔案結構Java虛擬機
- Java虛擬機器對內部鎖的四種優化方式Java虛擬機優化
- Java虛擬機器體系結構深入研究總結Java虛擬機
- Dalvik虛擬機器、Java虛擬機器與ART虛擬機器虛擬機Java
- 深入理解Java虛擬機器(類檔案結構)Java虛擬機
- 深入理解Java虛擬機器 – 類檔案結構Java虛擬機
- 深入學習Java虛擬機器——類檔案結構Java虛擬機
- JVM內幕:Java虛擬機器詳解JVMJava虛擬機
- Java 虛擬機器之五:Java位元組碼檔案結構Java虛擬機
- Java虛擬機器系列之Java記憶體結構簡介Java虛擬機記憶體
- java虛擬機器和Dalvik虛擬機器Java虛擬機
- Android 虛擬機器 Vs Java 虛擬機器Android虛擬機Java
- 每日一問:你瞭解 Java 虛擬機器結構麼?Java虛擬機
- 面試準備之java虛擬機器記憶體結構面試Java虛擬機記憶體
- 【深入Java虛擬機器】之二:Class類檔案結構Java虛擬機
- 虛擬機器VMware“內部錯誤”的解決方法虛擬機
- 《深入理解Java虛擬機器》個人讀書總結——JAVA虛擬機器記憶體Java虛擬機記憶體
- Java虛擬機器(JVM)Java虛擬機JVM
- Java虛擬機器(轉)Java虛擬機
- 理解Android虛擬機器體系結構Android虛擬機
- Java虛擬機器:JVM架構與垃圾回收Java虛擬機JVM架構
- 深入Java虛擬機器之 -- 總結面試篇Java虛擬機面試
- 類檔案結構——深入理解Java虛擬機器 筆記三Java虛擬機筆記
- Java虛擬機器詳解(二)------執行時記憶體結構Java虛擬機記憶體
- VMware 開啟虛擬機器電源時提示"內部錯誤"虛擬機
- 備戰- Java虛擬機器Java虛擬機
- Java虛擬機器16:MetaspaceJava虛擬機
- Java虛擬機器面試題Java虛擬機面試題
- .Net框架 = Java虛擬機器?框架Java虛擬機
- java~graalVM虛擬機器JavaLVM虛擬機
- JVM虛擬機器記憶體結構簡析JVM虛擬機記憶體
- Java 虛擬機器總結給面試的你(下)Java虛擬機面試
- Java 虛擬機器總結給面試的你(中)Java虛擬機面試