走進(jìn) Java

2018-08-12 21:20 更新

走進(jìn) Java

概述

Java 不僅僅是一門(mén)編程語(yǔ)言,它還是一個(gè)由一系列計(jì)算機(jī)軟件和規(guī)范形成的技術(shù)體系,這個(gè)技術(shù)體系提供了完整的用于軟件開(kāi)發(fā)和跨平臺(tái)部署的支持環(huán)境,并廣泛應(yīng)用于嵌入式系統(tǒng)、移動(dòng)終端、企業(yè)服務(wù)器和大型機(jī)等各種場(chǎng)合。時(shí)至今日,Java 技術(shù)體系已經(jīng)吸引了近千萬(wàn)軟件開(kāi)發(fā)者,這是全球最大的軟件開(kāi)發(fā)團(tuán)隊(duì)。使用 Java 的設(shè)備多達(dá)幾十億臺(tái),其中包括 8 億多臺(tái)個(gè)人計(jì)算機(jī)、21 億部移動(dòng)電話及其他手持設(shè)備、35 億個(gè)智能卡,以及大量機(jī)頂盒、導(dǎo)航系統(tǒng)和其他設(shè)備。

Java 能獲得如此廣泛的認(rèn)可,除了因?yàn)樗鼡碛幸婚T(mén)結(jié)構(gòu)嚴(yán)謹(jǐn)、面向?qū)ο蟮木幊陶Z(yǔ)言之外,還有許多不可忽視的優(yōu)點(diǎn):它擺脫了硬件平臺(tái)的束縛,實(shí)現(xiàn)了“一次編寫(xiě),到處運(yùn)行”的理想;它提供了一種相對(duì)安全的內(nèi)存管理和訪問(wèn)機(jī)制,避免了絕大部分的內(nèi)存泄漏和指針越界問(wèn)題;它實(shí)現(xiàn)了熱點(diǎn)代碼檢測(cè)和運(yùn)行時(shí)編譯及優(yōu)化,這使得 Java 應(yīng)用能隨著運(yùn)行時(shí)間的增加而獲得更高的性能;它有一套完善的應(yīng)用程序接口,還有無(wú)數(shù)的來(lái)自商業(yè)機(jī)構(gòu)和開(kāi)源社區(qū)的第三方類(lèi)庫(kù)來(lái)幫助實(shí)現(xiàn)各種各樣的功能。Java 所帶來(lái)的這些好處讓程序的開(kāi)發(fā)效率得到了很大的提升。作為一名Java 程序員,在編寫(xiě)程序時(shí)除了盡情發(fā)揮 Java 的各種優(yōu)勢(shì)外,還應(yīng)該去了解和思考一下 Java 技術(shù)體系中這些技術(shù)是如何實(shí)現(xiàn)的。認(rèn)清這些技術(shù)的運(yùn)作本質(zhì),是自己思考“程序這樣寫(xiě)好不好”的基礎(chǔ)和前提。當(dāng)我們?cè)谑褂靡婚T(mén)技術(shù)時(shí),如果不再依賴(lài)書(shū)本和他人就能得到這個(gè)問(wèn)題的答案,那才算升華到了“不惑”的境界。

Java 技術(shù)體系

站在 Java 平臺(tái)的邏輯結(jié)構(gòu)上來(lái)說(shuō),我們可以從下圖來(lái)了解 JVM:

以上是根據(jù)各個(gè)組成部分的功能來(lái)進(jìn)行劃分的,如果按照技術(shù)所服務(wù)的領(lǐng)域來(lái)劃分,或者說(shuō)按照J(rèn)ava技術(shù)關(guān)注的重點(diǎn)業(yè)務(wù)領(lǐng)域來(lái)劃分,Java技術(shù)體系可以分為四個(gè)平臺(tái),分別為:

  • Java Card:支持一些Java小程序(Applets)運(yùn)行在小內(nèi)存設(shè)備(如智能卡)上的平臺(tái)。
  • Java ME(Micro Edition):支持Java程序運(yùn)行在移動(dòng)終端(手機(jī)、PDA)上的平臺(tái),對(duì) Java API 有所精簡(jiǎn),并加入了針對(duì)移動(dòng)終端的支持,這個(gè)版本以前稱(chēng)為J2ME。
  • Java SE(Standard Edition):支持面向桌面級(jí)應(yīng)用(如 Windows 下的應(yīng)用程序)的 Java 平臺(tái),提供了完整的 Java 核心 API,這個(gè)版本以前稱(chēng)為 J2SE。
  • Java EE(Enterprise Edition):支持使用多層架構(gòu)的企業(yè)應(yīng)用(如 ERP、CRM 應(yīng)用)的 Java 平臺(tái),除了提供 Java SE API 外,還對(duì)其做了大量的擴(kuò)充并提供了相關(guān)的部署支持,這個(gè)版本以前稱(chēng)為 J2EE。

對(duì)于 JVM 自身的物理結(jié)構(gòu),我們可以從下圖了解:

什么是 JVM

JVM 是 Java 的核心和基礎(chǔ),在 Java 編譯器和 os 平臺(tái)之間的虛擬處理器。它是一種基于下層的操作系統(tǒng)和硬件平臺(tái)并利用軟件方法來(lái)實(shí)現(xiàn)的抽象的計(jì)算機(jī),可以在上面執(zhí)行 Java 的字節(jié)碼程序。

Java 編譯器只需面向 JVM,生成 JVM 能理解的代碼或字節(jié)碼文件。Java 源文件經(jīng)編譯器,編譯成字節(jié)碼程序,通過(guò) JVM 將每一條指令翻譯成不同平臺(tái)機(jī)器碼,通過(guò)特定平臺(tái)運(yùn)行。

簡(jiǎn)單的說(shuō),JVM 就相當(dāng)于一臺(tái)柴油機(jī),它只能用 Java (柴油)運(yùn)行,JVM 就是 Java 的虛擬機(jī),有了 JVM 才能運(yùn)行 Java 程序

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)