1、類別載入子系統:負責從檔案系統或網路中載入Class訊息,載入的資訊存放在一塊稱為方法區的記憶體空間。
2、方法區:就是存放類別資訊、常數資訊、常數池資訊、包含字串字面量和數字常數等。方法區是輔助堆疊的區塊永久區,解決堆疊資訊的產生,是先決條件。
3、Java堆:再java虛擬機器啟動的時候建立Java堆,它是java程式最主要的記憶體工作區域,幾乎所有的物件實例都存放到Java堆中,堆空間是所有執行緒共享的。堆解決的是資料儲存問題,也就是資料怎麼放、放在哪裡。
4、直接記憶體:Java的NIO函式庫允許Java程式使用直接內存,從而提高效能,通常直接記憶體速度會優於Java堆。讀寫頻繁的場合可能會考慮使用。
5、每個虛擬機器執行緒都有一個私有的棧,一個執行緒的Java棧在執行緒創建的時候被創建,Java棧中保存局部變數、方法參數、同時Java的方法呼叫、傳回值等。堆疊解決程式的運作問題,也就是程式如何執行,或說如何處理資料。
6、本機方法堆疊:和Java堆疊非常類似,最大不同為本機方法堆疊用於本機方法調用,Java虛擬機允許Java直接呼叫本機方法。
7、垃圾收集系統:是Java的核心,也是不可或缺的,Java有一套自己進行垃圾清理的機制,開發人員不需要手動清理。
8、PC暫存器:每個執行緒私有的空間,Java虛擬機會為每個執行緒建立PC暫存器,在任意時刻,一個Java執行緒總是在執行一個方法,這個方法稱為當前方法,如果目前方法不是本機方法,PC暫存器就會執行目前正在執行的指令,如果是本機方法,則PC暫存器值為undefined,暫存器存放如目前執行環境指標、程式計數器、操作堆疊指標、計算的變量指針等資訊。
9、虛擬機器最核心的元件就是執行引擎了,它負責執行虛擬機器的字節碼,一般使用者先進行編譯成機器碼後執行。
以上是Java 虛擬機器基本概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!