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

1.3 Java平臺(tái)及版本

平臺(tái)(Platform)通常指運(yùn)行程序所需的軟硬件環(huán)境,它是操作系統(tǒng)與底層硬件的組合。Java平臺(tái)僅指運(yùn)行在硬件平臺(tái)之上的軟件環(huán)境,它是運(yùn)行Java程序所必需的環(huán)境,因此也稱為Java運(yùn)行時(shí)環(huán)境(Java Runtime Environment, JRE)。

1.3.1 平臺(tái)組成

Java平臺(tái)具體由JVM(Java Virtual Machine, Java虛擬機(jī))和API(Application Programming Interface,應(yīng)用程序編程接口)組成,如圖1-1所示。

圖1-1 Java平臺(tái)的組成

1.Java虛擬機(jī)

Java源程序文件(擴(kuò)展名為.java)被編譯為類文件(擴(kuò)展名為.class)后,后者包含的字節(jié)碼(Bytecode)無法直接被CPU理解,需要由一個(gè)特殊的程序進(jìn)行翻譯和解釋,該程序被稱為Java虛擬機(jī),如圖1-2所示。不同的軟硬件平臺(tái)只需安裝對(duì)應(yīng)的Java虛擬機(jī),同一個(gè)類文件便能不加修改地運(yùn)行在各種平臺(tái)上,從而保證了Java程序的可移植性。

圖1-2 Java程序的執(zhí)行過程

2.API

API是編程語言提供的一組具有基本功能的組件庫(如C語言的庫函數(shù)),編程者可以在程序中直接調(diào)用它們。對(duì)于Java來說,其API是一些類文件,因這些類文件的數(shù)量眾多(往往多達(dá)幾千個(gè)),故將它們打包成一個(gè)zip格式的壓縮文件,該文件的擴(kuò)展名為.jar(Java ARchive, Java歸檔),簡(jiǎn)稱jar包一些第三方API也是以jar包的形式提供的。

1.3.2 版本劃分

從JDK 1.2開始,Java被劃分成3個(gè)版本—J2SE、J2EE和J2ME,以開發(fā)不同級(jí)別的硬件平臺(tái)與計(jì)算環(huán)境下的Java程序。JDK 6.0發(fā)布時(shí),3個(gè)版本被重新命名為Java SE、Java EE和Java ME。

(1)Java SE:Java Standard Edition, Java標(biāo)準(zhǔn)版。標(biāo)準(zhǔn)版適合開發(fā)運(yùn)行于客戶端的命令行或圖形用戶界面程序(通常稱為桌面程序)。Java SE包含了Java的核心API,并為Java EE提供支撐。Java初學(xué)者應(yīng)從標(biāo)準(zhǔn)版開始,這也是本書基于的版本。

(2)Java EE:Java Enterprise Edition, Java企業(yè)版。企業(yè)版適合開發(fā)和部署分布式的、業(yè)務(wù)邏輯相對(duì)復(fù)雜及數(shù)據(jù)量相對(duì)龐大的企業(yè)級(jí)應(yīng)用。Java EE構(gòu)建于Java SE的基礎(chǔ)之上,其核心是一套關(guān)于組件和服務(wù)的規(guī)范與參考實(shí)現(xiàn),如JSP、Servlet、EJB、JPA、JMS和JTA等,使得網(wǎng)絡(luò)中所有遵循Java EE規(guī)范的異構(gòu)平臺(tái)和系統(tǒng)能夠良好通信和交互。

(3)Java ME:Java Micro Edition, Java微型版。微型版適合開發(fā)運(yùn)行在移動(dòng)設(shè)備(如手機(jī))或其他嵌入式設(shè)備(如電視機(jī)頂盒)上的Java程序。由于這些設(shè)備的計(jì)算能力、存儲(chǔ)容量、能源、網(wǎng)絡(luò)帶寬及屏幕分辨率等都較計(jì)算機(jī)弱,因此,Java ME的虛擬機(jī)與核心API使用了Java SE的子集。此外,Java ME還提供了一些可選API以支持某些移動(dòng)設(shè)備特有的功能,如多媒體、游戲和藍(lán)牙通信等。世界上絕大多數(shù)的手機(jī)都不同程度地支持Java ME規(guī)范盡管同為支持Java的移動(dòng)計(jì)算平臺(tái),但Java ME與Android無論是API還是程序的開發(fā)方式都是截然不同的。

需要說明的是,Java的優(yōu)勢(shì)和強(qiáng)大之處更多地體現(xiàn)于企業(yè)版,絕大多數(shù)讀者在學(xué)習(xí)完標(biāo)準(zhǔn)版之后,應(yīng)繼續(xù)學(xué)習(xí)企業(yè)版。此外,學(xué)習(xí)微型版之前也應(yīng)先學(xué)習(xí)標(biāo)準(zhǔn)版。

1.3.3 Java程序的種類

不同版本下的Java程序具有不同的開發(fā)方式和運(yùn)行特點(diǎn),這些程序可以分為以下幾類。

(1)Standalone Application:獨(dú)立應(yīng)用程序,通常簡(jiǎn)稱為應(yīng)用程序。這種程序有且僅有一個(gè)main方法,虛擬機(jī)將該方法作為程序的執(zhí)行入口點(diǎn)。根據(jù)運(yùn)行界面的不同,獨(dú)立應(yīng)用程序又可分為控制臺(tái)(Console,即命令行)獨(dú)立應(yīng)用程序和圖形用戶界面獨(dú)立應(yīng)用程序。以Java標(biāo)準(zhǔn)版開發(fā)的大多屬于獨(dú)立應(yīng)用程序,本書后續(xù)各章節(jié)中的程序也是如此。

(2)Applet:小程序,也稱為瀏覽器小程序。這種程序不能獨(dú)立執(zhí)行,一般通過兩種方式執(zhí)行:①嵌到HTML網(wǎng)頁中,由瀏覽器(如IE)來執(zhí)行這種方式只是通過瀏覽器將Applet下載到本機(jī),Applet仍由本機(jī)上安裝的Java虛擬機(jī)來執(zhí)行。;②由JDK自帶的Applet查看器執(zhí)行。實(shí)際上,Applet的本質(zhì)仍是圖形用戶界面應(yīng)用程序,其也是以標(biāo)準(zhǔn)版開發(fā)的。

(3)JSP/Servlet:JSP(Java Server Page, Java服務(wù)器網(wǎng)頁)是Java平臺(tái)下的動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),屬于Java企業(yè)版定義的規(guī)范之一。JSP的實(shí)質(zhì)是嵌入了Java代碼的HTML頁面,其必須被部署到支持JSP規(guī)范的Web服務(wù)器一種安裝于服務(wù)器的、能解釋JSP頁面中Java代碼的軟件,如Tomcat、JBoss等。中,并通過客戶端的瀏覽器進(jìn)行訪問。Web服務(wù)器首先將JSP編譯為Servlet(服務(wù)器小程序),然后執(zhí)行頁面中的Java代碼,并將動(dòng)態(tài)生成的內(nèi)容填充到HTML頁面中,最終將HTML頁面返回給客戶端的瀏覽器。

(4)MIDlet:MIDlet(Mobile Information Device Applet,移動(dòng)信息設(shè)備小程序)是指運(yùn)行在支持Java ME規(guī)范的移動(dòng)設(shè)備上的Java程序。

Java是跨平臺(tái)的編程語言,事實(shí)上,除了上述幾種程序之外,還有一些基于其他平臺(tái)的Java程序,如目前非常熱門的Android程序等,這些程序運(yùn)行在平臺(tái)廠商特定的一套規(guī)范和API之上。此外,隨著Java的不斷發(fā)展,近年來還出現(xiàn)了一些新的Java技術(shù),如JSF、Java FX等,但使用這些技術(shù)開發(fā)的Java程序目前尚未形成主流,故未列出。

主站蜘蛛池模板: 峡江县| 宝坻区| 纳雍县| 洞口县| 临夏市| 德惠市| 民权县| 平南县| 双城市| 东明县| 江门市| 浏阳市| 兴山县| 铜陵市| 泗洪县| 吉林市| 麻栗坡县| 油尖旺区| 东莞市| 乐平市| 盐山县| 冕宁县| 武乡县| 灵璧县| 成安县| 亳州市| 金川县| 沁水县| 高要市| 海口市| 康马县| 客服| 新野县| 台中市| 友谊县| 上犹县| 青川县| 青铜峡市| 广西| 凤台县| 登封市|