五: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通過一個編譯階段和一個運作階段,來讓機器最終了解
我們想要它完成的工作,并按照我們的要求進行運作。
在這兩個階段中,需要我們去完成的就是編譯階段的工作,也就是說:我們需要把我們