經過對java的一段時間學習,相信大家已經能夠明確jvm的重要性,那麼對於其中的指令系統,可能還不是很了解。從字面意思來看,是一種呼叫指令的工具。關於一些具體的內容介紹,我們會在下文中為大家展現,並為jvm的寄存器為大家進行分享,一起進入今天的學習吧。
1、指令系統說明
JVM指令系統與其它電腦指令系統極為相似。同時,Java指令還包括操作碼和操作數兩部分。操作碼是一個8位元的二進位數字,操作碼後面有一個操作數,其長度視需要而定。運算程式碼用來指定指令運算的性質(這裡我們以彙編符號的形式來說明),例如iload表示從記憶體中裝入一個整數,anewarray表示為新的陣列分配空間,iand表示兩個整數的"與" ,ret表示過程控制,從對某個方法的呼叫中回傳。超過8位元長度時,運算元被分割為多個位元組儲存。對於這種情況,JVM採用了「bigendian」的編碼方法,即高bits位於低位元組中。這種情況與Motorola和RISCCPU所採用的編碼方式相同,而與Intel所採用的"littleendian"編碼方式不同,即低位元bits儲存低位元組。
java指令系統是為實作Java語言而設計的,它包含了呼叫方法的指令,以及監控多優先權系統。 JVM中8位元操作碼的長度使得JVM最多有256條指令,而現在已經有超過160條指令被使用。
2.常用暫存器
全部CPU都包含一個暫存器組,用來保存系統狀態和處理器要求的資訊。當虛擬機器定義了更多的暫存器時,在不存取堆疊或記憶體的情況下就能從中獲得更多的信息,這有助於提高運行速度。但是,如果虛擬機器中暫存器的數量超過實際CPU的數量,那麼在實作虛擬機器時將花費大量的處理器時間以常規記憶體模擬暫存器,而這反而會降低虛擬機器的效率。對於這一點,JVM只設定了4個最常用的暫存器。他們是:
(1)pc程式計數器
(2)optop操作數棧頂指針
(3)frame目前執行環境指針
(4)vars指向目前執行環境中第一個局部變數的指針
所有暫存器均為32位元。 pc用於記錄程式的執行。 optop,frame和vars用來記錄指向Java堆疊區的指標。
以上就是java之JVM指令系統的介紹,本篇主要以理論知識點為主,大家在學習後,可以進行文檔的保存,方便以後的知識回顧。