Java 不僅僅是一門編程語言,它還是一個由一系列計算機軟件和規(guī)范形成的技術(shù)體系,這個技術(shù)體系提供了完整的用于軟件開發(fā)和跨平臺部署的支持環(huán)境,并廣泛應(yīng)用于嵌入式系統(tǒng)、移動終端、企業(yè)服務(wù)器和大型機等各種場合。時至今日,Java 技術(shù)體系已經(jīng)吸引了近千萬軟件開發(fā)者,這是全球最大的軟件開發(fā)團隊。使用 Java 的設(shè)備多達幾十億臺,其中包括 8 億多臺個人計算機、21 億部移動電話及其他手持設(shè)備、35 億個智能卡,以及大量機頂盒、導(dǎo)航系統(tǒng)和其他設(shè)備。
Java 能獲得如此廣泛的認可,除了因為它擁有一門結(jié)構(gòu)嚴謹、面向?qū)ο蟮木幊陶Z言之外,還有許多不可忽視的優(yōu)點:它擺脫了硬件平臺的束縛,實現(xiàn)了“一次編寫,到處運行”的理想;它提供了一種相對安全的內(nèi)存管理和訪問機制,避免了絕大部分的內(nèi)存泄漏和指針越界問題;它實現(xiàn)了熱點代碼檢測和運行時編譯及優(yōu)化,這使得 Java 應(yīng)用能隨著運行時間的增加而獲得更高的性能;它有一套完善的應(yīng)用程序接口,還有無數(shù)的來自商業(yè)機構(gòu)和開源社區(qū)的第三方類庫來幫助實現(xiàn)各種各樣的功能。Java 所帶來的這些好處讓程序的開發(fā)效率得到了很大的提升。作為一名Java 程序員,在編寫程序時除了盡情發(fā)揮 Java 的各種優(yōu)勢外,還應(yīng)該去了解和思考一下 Java 技術(shù)體系中這些技術(shù)是如何實現(xiàn)的。認清這些技術(shù)的運作本質(zhì),是自己思考“程序這樣寫好不好”的基礎(chǔ)和前提。當我們在使用一門技術(shù)時,如果不再依賴書本和他人就能得到這個問題的答案,那才算升華到了“不惑”的境界。
站在 Java 平臺的邏輯結(jié)構(gòu)上來說,我們可以從下圖來了解 JVM:
以上是根據(jù)各個組成部分的功能來進行劃分的,如果按照技術(shù)所服務(wù)的領(lǐng)域來劃分,或者說按照Java技術(shù)關(guān)注的重點業(yè)務(wù)領(lǐng)域來劃分,Java技術(shù)體系可以分為四個平臺,分別為:
對于 JVM 自身的物理結(jié)構(gòu),我們可以從下圖了解:
JVM 是 Java 的核心和基礎(chǔ),在 Java 編譯器和 os 平臺之間的虛擬處理器。它是一種基于下層的操作系統(tǒng)和硬件平臺并利用軟件方法來實現(xiàn)的抽象的計算機,可以在上面執(zhí)行 Java 的字節(jié)碼程序。
Java 編譯器只需面向 JVM,生成 JVM 能理解的代碼或字節(jié)碼文件。Java 源文件經(jīng)編譯器,編譯成字節(jié)碼程序,通過 JVM 將每一條指令翻譯成不同平臺機器碼,通過特定平臺運行。
簡單的說,JVM 就相當于一臺柴油機,它只能用 Java (柴油)運行,JVM 就是 Java 的虛擬機,有了 JVM 才能運行 Java 程序
更多建議: