官术网_书友最值得收藏!

1.4 Java程序的運行機制

運行Java程序時,需要了解Java程序的運行機制。程序運行時,要經過編譯和解釋運行。首先編譯擴展名為.java的源文件,生成擴展名為.class的字節碼文件。然后,JVM解釋運行字節碼。最后,顯示運行結果。

1.JDK、JRE、JVM三者之間的關系

JDK是整個Java開發的核心,它集成了JRE和一些工具,例如javac.exe、java.exe、jar.exe等。

JRE主要包含兩個部分:JVM的標準實現和Java的一些基本類庫。

JVM只執行.class類型的文件,識別.class文件中的字節碼指令并調用操作系統上的API完成操作。所以JVM是Java能夠跨平臺的關鍵所在。

JDK、JRE、JVM三者之間的關系如圖1-18所示。

2.JVM加載.class文件的原理和步驟

JVM加載.class文件的原理如圖1-19所示。

圖1-18 JDK、JRE、JVM三者之間的關系

圖1-19 JVM加載.class文件的原理

其加載步驟如下。

第一步:使用記事本編寫源程序。Java源程序的擴展名是.java。

第二步:編譯源程序。源程序編寫完成后,需要編譯器把源文件編譯為與所使用平臺無關的.class文件,也就是字節碼文件。

第三步:在系統平臺中運行.class文件,即可獲得運行結果。

3.Java的跨平臺實現

如圖1-20所示,編譯之后字節碼文件可以在多個平臺上運行,因為JVM的存在,平臺能夠讀取并處理字節碼文件。這就體現了 Java 程序“一次編寫,隨處運行”的特點,可以有效解決程序語言在不同操作系統編譯時產生不同機器代碼的問題,大大降低了程序開發和維護的成本。Java程序通過JVM可以實現跨平臺,但是JVM并不是跨平臺的,不同操作系統中JVM也是不相同的。

圖1-20 不同版本的JVM

主站蜘蛛池模板: 灵武市| 朝阳市| 义乌市| 固始县| 娄底市| 远安县| 丽江市| 永春县| 灯塔市| 阜南县| 寿阳县| 谢通门县| 旬阳县| 曲阜市| 香港| 来安县| 永善县| 介休市| 油尖旺区| 涪陵区| 长子县| 博兴县| 施秉县| 宝山区| 新郑市| 龙江县| 长海县| 巴林左旗| 渭南市| 东辽县| 南昌县| 营山县| 略阳县| 新疆| 涪陵区| 榕江县| 东平县| 监利县| 登封市| 城口县| 昆山市|