JAVA基礎(chǔ):Java語言相關(guān)的重要術(shù)語解析
——
Java 語言基本上屬于一個(gè)完全面向?qū)ο蟮恼Z言,并且語言的設(shè)計(jì)仍然以簡捷為重點(diǎn),因此有其它語言基礎(chǔ)的朋友學(xué)習(xí)Java語言會感覺比較簡單,對于這個(gè)語言學(xué)習(xí)的難點(diǎn)則是面向?qū)ο蟮南嚓P(guān)概念,包括:包、類、對象、實(shí)例、接口、繼承、重載與覆蓋,還有就是類、變量、函數(shù)的相關(guān)作用域,這些是語言學(xué)習(xí)的重點(diǎn)和難點(diǎn)。
對于語言的學(xué)習(xí)可以參考《Java 2參考大全》,對于面向?qū)ο蟮膶W(xué)習(xí)可以參考《Think in Java》,先學(xué)語言打好基礎(chǔ),再學(xué)面向?qū)ο蟮母拍钜约霸O(shè)計(jì),通過自己設(shè)計(jì)程序再進(jìn)一步去了解設(shè)計(jì)模式,循序漸進(jìn)地達(dá)到Java程序員的基本要求。
學(xué)習(xí)Java還有個(gè)非常重要的就是類庫,因?yàn)闆]有人還會從頭開發(fā)程序,SUN公司提供了一套完整的開發(fā)用的基礎(chǔ)類庫,如何用好這些類才是Java語言學(xué)習(xí)的重中之重。
JVM (Java Virtual Machine, Java虛擬機(jī))。
就是Java程序運(yùn)行的虛擬環(huán)境,因?yàn)镴ava是解釋型的語言,因此需要一個(gè)邊解釋邊運(yùn)行的支撐環(huán)境。同時(shí),JVM又是在OS(操作系統(tǒng))之上的,對于在JVM上運(yùn)行的Java程序提供了統(tǒng)一的標(biāo)準(zhǔn)接口,從而屏蔽了操作系統(tǒng)的差異性,實(shí)現(xiàn)了Java代碼的“一次編寫,處處運(yùn)行”的承諾,這個(gè)解釋說明。NET平臺理論上也可以實(shí)現(xiàn)這個(gè)功能,只是微軟沒有提供這樣的支持。
為了提升程序運(yùn)行的效率以及代碼知識產(chǎn)權(quán)的保護(hù),Java代碼會使用JDK中的編譯器編譯成字節(jié)碼(中間代碼),從而運(yùn)行在JVM之上,但是這個(gè)編譯結(jié)果與C/C++這種編譯型語言編譯出來的結(jié)果不同,Java編譯出來的是一種結(jié)構(gòu)中立的中間文件格式,只能在JVM上執(zhí)行,而C/C++編譯出來的已經(jīng)是最終的執(zhí)行程序,操作系統(tǒng)只是管理和支撐應(yīng)用運(yùn)行,但是編譯出來的結(jié)果已經(jīng)是機(jī)器碼。因此Java的Class文件可以使用反編譯工具轉(zhuǎn)換成 Java代碼進(jìn)行分析,推薦的反編譯工具是JAD及它的Eclise插件。
許多公司都有開發(fā)自己的JVM,據(jù)測試數(shù)據(jù)顯示性能都比SUN提供的免費(fèi)版本要好,但是我實(shí)際使用中沒有發(fā)現(xiàn)明顯地區(qū)別,而SUN也有高級但是收費(fèi)的版本,因此性能上沒有顯示地提升還是使用免費(fèi)地版本就可以了。
JRE(Java Runtime Environment,Java運(yùn)行環(huán)境)。JRE提供了類庫、JVM與其他組件來支持applet和Java應(yīng)用程序的運(yùn)行。另外,JRE擁有兩個(gè)關(guān)鍵的發(fā)布技術(shù):Java Plug-in與Java Web Start,Java Plug-in支持applet運(yùn)行在大部分瀏覽器上,Java Web Start則可以將一個(gè)獨(dú)立的應(yīng)用程序發(fā)布到網(wǎng)絡(luò)上。
JRE同時(shí)還是J2EE平臺企業(yè)級應(yīng)用開發(fā)與部署的支撐技術(shù),但是不包括編譯器與調(diào)試器等各種工具去支持applet和應(yīng)用程序的開發(fā)。
Java Plug-in.這個(gè)技術(shù)是JRE的一部分,用于連接瀏覽器與Java平臺。這個(gè)連接使得WEB站點(diǎn)的applets運(yùn)行在客戶端的瀏覽器中。
Java Web Start:只要擁有相同版本的JRE,獨(dú)立的Java應(yīng)用程序就可以通過這個(gè)技術(shù)發(fā)布到網(wǎng)絡(luò)上。
JDK(Java Development Kit,Java開發(fā)工具)。
包括了Java運(yùn)行環(huán)境(Java Runtime Envirnment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar),還有Java類庫的源代碼(src.zip)以及學(xué)習(xí)用的例子 (sample與demo)。為了使程序安裝后就可以運(yùn)行,許多Java應(yīng)用服務(wù)器會集成JDK,原因可以參考我所寫的《JRE與JDK在啟動應(yīng)用服務(wù)器中的作用》。
無論是JRE還是JDK最主要是使用他們攜帶的JVM,以及安裝到JDK與JRE目錄下的LIB目錄里的JAR包。使用JRE還是 JDK都通過JAVA_HOME這個(gè)參數(shù)完成,而對LIB目錄下的JAR包則通過CLASSPATH目錄進(jìn)行添加。值得注意的是如果JAVA_HOME設(shè)置成JDK的安裝目錄,實(shí)際上用的是包含在JDK安裝目錄下的JRE目錄里的JVM.
JDK里面還包括了開發(fā)所需要用的編譯、跟蹤、發(fā)布等多種工具,這里就不一一描述,大家可以在網(wǎng)上查詢資料,如果需要我這邊補(bǔ)充,也可以跟帖說明。
J2SE( Java 2 Standard Edition, Java 2 標(biāo)準(zhǔn)版)。
Java 2平臺標(biāo)準(zhǔn)版(現(xiàn)在叫Java SE)支持客戶端和服務(wù)器端的Java應(yīng)用程序開發(fā),如今還包括了嵌入式和實(shí)時(shí)系統(tǒng)環(huán)境。Java SE還支持Java Web Services的開發(fā),并且還是Java EE平臺的基礎(chǔ)。
Java SE平臺中有兩個(gè)主要的產(chǎn)品就是JRE與JDK.
J2EE( Java 2 Enterprise Edition, Java 2 企業(yè)版)。
J2EE(現(xiàn)在叫Java EE)是一種工業(yè)標(biāo)準(zhǔn),用于支持可移植、可擴(kuò)展、健壯并安全的服務(wù)器端Java程序。Java EE提供了web服務(wù)、組件模型、管理和通訊API從而可以實(shí)現(xiàn)符合工業(yè)標(biāo)準(zhǔn)SOA框架與WEB應(yīng)用程序。Java EE平臺包括符合Java EE規(guī)范的應(yīng)用服務(wù)器,以及相關(guān)的工具、例子及幫助文件。還有符合Java EE標(biāo)準(zhǔn)的應(yīng)用程序的發(fā)布與調(diào)試工具。
簡單來說Java EE就是一組規(guī)范組成的,這些規(guī)范合成到一起組成一個(gè)技術(shù)標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)現(xiàn)在是由JCP組織制定,最新的版本是2006年6月發(fā)布的Java EE 5.0,所有的應(yīng)用服務(wù)器產(chǎn)品都希望通過這樣的認(rèn)證。因?yàn)樗姓J(rèn)證過的產(chǎn)品從理論上講符合J2EE規(guī)范開發(fā)的應(yīng)用程序都可以平滑地移植,現(xiàn)實(shí)中我做的移植工作也只需要修改不到5%的內(nèi)容,并且大多是XML配置文件而不涉及到源代碼。這樣的好處使用戶無須綁定到某個(gè)廠商的平臺上,也為擴(kuò)展這個(gè)市場打下了基礎(chǔ)。
Java EE 5.0的認(rèn)證過程是必須通過SUN公司提供的軟件測試包,測試包里面包括了27000多個(gè)功能點(diǎn)的驗(yàn)證,驗(yàn)證通過后就可以獲得這個(gè)標(biāo)志,并且會在SUN的網(wǎng)站上掛出。http://java.sun.com/javaee/overview/compatibility.jsp
在2006年12月Apusic 5.0全球第四家通過了這個(gè)認(rèn)證,這個(gè)事實(shí)也就說明中國的應(yīng)用服務(wù)器產(chǎn)品終于在技術(shù)上沒有了差距,甚至因?yàn)锳pusic研發(fā)產(chǎn)品的態(tài)度專注,所以還領(lǐng)先了國外的主要競爭對手。
Java EE SDK就是SUN公司開發(fā)的一個(gè)符合J2EE標(biāo)準(zhǔn)的應(yīng)用服務(wù)器,可以下載后免費(fèi)使用來了解Java EE的最新技術(shù),當(dāng)然也可以下載Apusic 5.0這個(gè)也是符合Java EE最新標(biāo)準(zhǔn)的產(chǎn)品,而且會有更加友好的中文界面與中文幫助。
寫的過程中,總覺得知識點(diǎn)都在相互關(guān)聯(lián)著,于是寫出來的東西好像會越來越多,無法收筆。因此,希望看過的朋友多給提寶貴意見,使我寫的東西更加有針對性,能夠?yàn)閷W(xué)習(xí)和使用J2EE技術(shù)的朋友,以及使用我們Apusic產(chǎn)品的客戶帶來收獲。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論