虛擬機器概論(六)——JAVA虛擬機器模型

來源:互聯網
上載者:User

JAVA虛擬機器模型



由於它的高度可移植性,JAVA已經成為Internet上的主要程式設計語言。



“類比機”的概念是電腦工業界經常使用的對虛擬機器的解釋之一。這種虛擬機器概念和IBM版的虛擬機器非常不同。在IBM的概念中,系統記憶體和資源被分割,成為當前機器的精確拷貝。而對於類比機,系統並不被分割,而是有一台新的“機器”或者虛擬機器載入到當前系統中,在不改變當前系統的前提下,向使用者提供不同的功能。這種類型的虛擬機器被證明是非常強大的,它允許軟體開發人員在一台完全不同的機器上仿效另一台機器。最近,這種觀念創造了一種強大的電腦程式語言:JAVA。



JAVA程式設計語言依賴於被稱做JAVA虛擬機器(Java virtual machine,JVM)的類比機。JVM使得程式員不是和系統打交道,而是和虛擬機器打交道。因此程式員使用的函數是JVM內嵌的函數,而不是作業系統的函數。這非常先進,因為它提供了可移植性。如果相同的JVM安裝在兩個完全不同的機器上,那麼同一個JAVA程式應該在兩台機器上都可以運行,因為JAVA程式依賴於JVM,而不是運行它的系統。由於它的高度可移植性,JAVA已經成為Internet上的主要程式設計語言。許多Web頁面現在都和JAVA程式結合在一起。這些JAVA程式可以完成一些在瀏覽器中顯示的任務。



同時,JVM也非常小。或者說,它不站用大量的記憶體。這意味著JVM可以被應用於許多不同的機器。例如,電視機,蜂窩行動電話,以及電腦,都可以。因此,完全有可能向我們今天正在使用的裝置中添加像遊戲這樣的複雜功能。



它是如何工作的?



你現在所疑惑的可能是一個JAVA程式究竟是如何工作的。如何使用JVM?好的,JVM是我們對抽象電腦的稱呼。或者說,JVM是在“真正的”硬體平台和作業系統上用軟體來實現的。JAVA程式是為JVM編譯,而不是系統。這就意味著程式員寫的JAVA程式由JAVA編譯器翻譯成JVM執行的語言/代碼。這些代碼被稱做位元組代碼(Byte Code)。位元組代碼可以被認為是JVM的機器語言。JVM把位元組代碼流解釋成指令序列。然後這些指令被執行,產生期望的輸出。圖1.1展示了從JAVA程式到最終執行的路線。









如圖1.1所示,一旦位元組代碼被JVM解釋,JVM指令就會被映射成作業系統指令或者硬體指令。這就意味著JVM實際上是使用作業系統和機器指令來實現它所擷取的指令。因此,JVM的指令在每一個安裝JVM的作業系統或機器上都必須有一個可能的映射才能工作。這就是為什麼JAVA語言並沒有達到100%可移植的原因之一。可能有的JVM指令在一種作業系統上可以實現,而在另外一種作業系統上不能實現。



小結



JAVA虛擬機器的主要目的就是去解決電腦程式的可移植問題。問題是JVM完全解決這個問題了嗎?答案是沒有……它沒有完全解決這個問題。但是,它提供了一種對大部分都有效解決方案(儘管不是100%有效)。JAVA已經實現相當高的可移植性。JAVA的力量使人們可以開發許多跨平台的應用程式。JAVA已經證明是有用的,強大的虛擬機器實現。




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.