Java虛擬機器的原理是怎樣的?學習一下吧
Java虛擬機器是一個可以執行Java位元組碼的虛擬機器程式。Java原始檔被編譯成能被Java虛擬機器執行的位元組碼檔案。
Java是平臺無關的語言是指用Java寫的應用程式不用修改就可在不同的軟硬體平臺上執行。平臺無關有兩種:原始碼級和目的碼級。C和C++具有一定程度的原始碼級平臺無關,表明用C或C++寫的應用程式不用修改只需重新編譯就可以在不同平臺上執行。
Java主要靠Java虛擬機器(JVM)在目標碼級實現平臺無關性。JVM是一種抽象機器,它附著在具體作業系統之上,本身具有一套虛機器指令,並有自己的棧、暫存器組等。但JVM通常是在軟體上而不是在硬體上實現。(目前,SUN系統公司已經設計實現了Java晶片,主要使用在網路計算機NC上。另外,Java晶片的出現也會使Java更容易嵌入到家用電器中。)JVM是Java平臺無關的基礎,在JVM上,有一個Java直譯器用來解釋Java編譯器編譯後的程式。Java程式設計人員在編寫完軟體後,通過Java編譯器將Java源程式編譯為JVM的位元組程式碼。任何一臺機器只要配備了Java直譯器,就可以執行這個程式,而不管這種位元組碼是在何種平臺上生成的。另外,Java採用的是基於IEEE標準的資料型別。通過JVM保證資料型別的一致性,也確保了Java的平臺無關性。
Java虛擬機器通過呼叫某個指定類的方法main啟動,傳遞給main一個字串陣列引數,使指定的類被裝載,同時連結該類所使用的其它的型別,並且初始化它們。例如對於程式:
public class HelloApp {
public static void main(String[] args){
System.out.println("Hello World!");
for (int i = 0; i < args.length; i++ ) {
System.out.println(args);
}
}
}
編譯後在命令列模式下鍵入:java HelloApp run virtual machine
將通過呼叫HelloApp的方法main來啟動java虛擬機器,傳遞給main一個包含三個字串"run"、"virtual"、"machine"的陣列。現在我們略述虛擬機器在執行HelloApp時可能採取的步驟。
相關文章
- java虛擬機器的執行原理Java虛擬機
- Java虛擬機器是怎麼實現synchronized的Java虛擬機synchronized
- 深入學習Java虛擬機器——虛擬機器位元組碼執行引擎Java虛擬機
- 《深入理解java虛擬機器》學習筆記4——Java虛擬機器垃圾收集器Java虛擬機筆記
- 學習Java虛擬機器沒用? 聽聽當事人是怎麼說的!(skycto JEEditor)Java虛擬機
- 五分鐘學Java:如何學習Java面試必考的JVM虛擬機器Java面試JVM虛擬機
- Java虛擬機器是什麼?Java虛擬機
- 《深入理解java虛擬機器》學習筆記7——Java虛擬機器類生命週期Java虛擬機筆記
- Java虛擬機器1:什麼是JavaJava虛擬機
- Dalvik虛擬機器、Java虛擬機器與ART虛擬機器虛擬機Java
- 學習筆記-虛擬機器筆記虛擬機
- Java虛擬機器類裝載的原理及實現Java虛擬機
- Java 虛擬機器之三:Java虛擬機器的記憶體結構Java虛擬機記憶體
- 什麼叫中介軟體或虛擬BOM?工作原理是怎樣的?
- java虛擬機器和Dalvik虛擬機器Java虛擬機
- Android 虛擬機器 Vs Java 虛擬機器Android虛擬機Java
- Java跨平臺原理與Java虛擬機器(JVM)Java虛擬機JVM
- 電話機器人的工作原理是怎樣的呢?機器人
- Java虛擬機器的組成Java虛擬機
- 怎樣檢視虛擬機器裡面的程式!虛擬機
- Java虛擬機器記憶體模型學習筆記Java虛擬機記憶體模型筆記
- 深入學習Java虛擬機器——類檔案結構Java虛擬機
- 虛擬機器裝win10系統的教程 虛擬機器VMware怎樣安裝win10虛擬機Win10
- Java虛擬機器的記憶體是如何分佈的Java虛擬機記憶體
- 學習《Java虛擬機器》目錄索引(持續更新中)Java虛擬機索引
- java 虛擬機器的生命週期Java虛擬機
- Java虛擬機器(JVM)Java虛擬機JVM
- Java虛擬機器(轉)Java虛擬機
- Java虛擬機器:Jvm概念和原理詳解以及GC機制的分析Java虛擬機JVMGC
- Java虛擬機器 —— 類的載入機制Java虛擬機
- win10 自帶虛擬機器怎樣開啟_win10自帶虛擬機器在哪Win10虛擬機
- win10怎樣和虛擬機器共享藍芽 win10和虛擬機器共享藍芽的步驟Win10虛擬機藍芽
- JVM學習-虛擬機器類載入機制JVM虛擬機
- Java 虛擬機器永久代的垃圾收集Java虛擬機
- 備戰- Java虛擬機器Java虛擬機
- Java虛擬機器16:MetaspaceJava虛擬機
- Java虛擬機器面試題Java虛擬機面試題
- .Net框架 = Java虛擬機器?框架Java虛擬機