天天看點

Java私塾跟我學系列——JAVA篇 五、

五:Java如何做到讓機器了解我們想要做的東西                  

用一個圖來描述這個過程會比較容易了解:

1:編寫代碼

首先把我們想要計算機做的事情,通過Java表達出來,寫成Java檔案,這個過程就是

編寫代碼的過程。如上圖所示的Hello.java檔案。

2:編譯

寫完Java代碼後,機器并不認識我們寫的Java代碼,需要進行編譯成為位元組碼,編譯

後的檔案叫做class檔案。如上圖所示的Hello.class檔案。

3:類裝載ClassLoader

類裝載的功能是為執行程式尋找和裝載所需要的類。

ClassLoader能夠加強代碼的安全性,主要方式是:把本機上的類和網絡資源類相分離,

在調入類的時候進行檢查,因而可以限制任何“特洛伊木馬”的應用。

4:位元組碼(byte-code)校驗

功能是對class檔案的代碼進行校驗,保證代碼的安全性。

Java 軟體代碼在實際運作之前要經過幾次測試。JVM 将代碼輸入一個位元組碼校驗器以

測試代碼段格式并進行規則檢查--檢查僞造指針、違反對象通路權限或試圖改變對象類型

的非法代碼。

注意----所有源于網絡的類檔案都要經過位元組碼校驗器

位元組碼校驗器對程式代碼進行四遍校驗,這可以保證代碼符合JVM 規範并且不破壞系統

的完整性。如果校驗器在完成四遍校驗後未傳回出錯資訊,則下列各點可被保證:

- 類符合JVM規範的類檔案格式

- 無通路限制異常

- 代碼未引起操作數棧上溢或下溢

- 所有操作代碼的參數類型将總是正确的

- 無非法資料轉換發生,如将整數轉換為對象引用

- 對象域通路是合法的

5:解釋(Interpreter)

可是機器也不能認識class檔案,還需要被解釋器進行解釋,機器才能最終了解我們所

要表達的東西。

PDF 檔案使用 "pdfFactory Pro" 試用版本建立 www.fineprint.cn

Java私塾跟我學系列——JAVA篇  網址:http://www.javass.cn  電話:010-68434236

6:運作

最後由運作環境中的Runtime對代碼進行運作,真正實作我們想要機器完成的工作。 

7:說明

由上面的講述,大家看到,Java通過一個編譯階段和一個運作階段,來讓機器最終了解

我們想要它完成的工作,并按照我們的要求進行運作。

在這兩個階段中,需要我們去完成的就是編譯階段的工作,也就是說:我們需要把我們