雲端計算開發學習教程,Tomcat運維JVM 虛擬機器常識

千鋒雲端計算發表於2019-07-04

Tomcat運維JVM 虛擬機器常識,作為了解JVM 虛擬機器的開始。我們很有必要弄明白以下問題。

雲端計算開發學習教程,Tomcat運維JVM 虛擬機器常識

所謂虛擬機器,就是一臺虛擬的計算機。他是一款軟體,用來執行一系列虛擬計算機指令。大體上,虛擬機器可以分為系統虛擬機器和程式虛擬機器。大名鼎鼎的VisualBox、VMware就屬於系統虛擬機器。他們完全是對物理計算機的模擬。提供了一個可以執行完整作業系統的軟體平臺。

程式虛擬機器的典型代表就是Java虛擬機器,它專門為執行單個計算機程式而設計,在Java虛擬機器中執行的指令我們稱為Java位元組碼指令。無論是系統虛擬機器還是程式虛擬機器,在上面執行的軟體都唄限制於虛擬機器提供的資源中。

同一個JAVA程式(JAVA位元組碼的集合),透過JAVA虛擬機器(JVM)執行於各大主流作業系統平臺,比如Windows、CentOS、Ubuntu等。程式以虛擬機器為中介,來實現跨平臺。

雲端計算開發學習教程,Tomcat運維JVM 虛擬機器常識

我們要對JVM虛擬機器的結構有一個感性的認知。畢竟我們不是程式設計人員,認知程度達不到那麼深入。

每一個java虛擬機器執行緒都有一個私有的java棧,一個執行緒的java棧線上程建立的時候被建立,java棧中儲存著幀資訊,java棧中儲存著區域性變數、方法引數,同時和java方法的呼叫、返回密切相關。

本地方法棧和java棧非常類似,最大的不同在於java棧用於方法的呼叫,而本地方法棧則用於本地方法的呼叫,作為對java虛擬機器的重要擴充套件,java虛擬機器允許java直接呼叫本地方法(通常使用C編寫)

雲端計算開發學習教程,Tomcat運維JVM 虛擬機器常識

PC(Program Counter)暫存器也是每一個執行緒私有的空間,java虛擬機器會為每一個java執行緒建立PC暫存器。在任意時刻,一個java執行緒總是在執行一個方法,這個正在被執行的方法稱為當前方法。如果當前方法不是本地方法,PC暫存器就會指向當前正在被執行的指令。如果當前方法是本地方法,那麼PC暫存器的值就是undefined

執行引擎是java虛擬機器的最核心元件之一,它負責執行虛擬機器的位元組碼,現代虛擬機器為了提高執行效率,會使用即時編譯技術將方法編譯成機器碼後再執行。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69916964/viewspace-2649547/,如需轉載,請註明出處,否則將追究法律責任。

相關文章