Java2平臺包括:標(biāo)準(zhǔn)版(J2SE)、企業(yè)版(J2EE)和微縮版(J2ME)三個版本。J2SE,J2ME和J2EE,這也就是SunONE(Open NetEnvironment)體系。J2SE就是Java2的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入式系統(tǒng)開發(fā),如手機(jī)和PDA的編程;J2EE是Java2的企業(yè)版,主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。
平臺簡介
Standard Edition(標(biāo)準(zhǔn)版) J2SE 包含那些構(gòu)成Java語言核心的類。比如:數(shù)據(jù)庫連接、接口定義、輸入/輸出、網(wǎng)絡(luò)編程
Enterprise Edition(企業(yè)版) JBoss 包含J2SE 中的類,并且還包含用于開發(fā)企業(yè)級應(yīng)用的類。比如:EJB、servlet、JSP、XML、事務(wù)控制
Micro Edition(微縮版) J2ME 包含J2SE中一部分類,用于消費(fèi)類電子產(chǎn)品的軟件開發(fā)。比如:呼機(jī)、智能卡、手機(jī)、PDA、機(jī)頂盒
簡單講就是:
J2SE:java2 Standard edition (java 2 標(biāo)準(zhǔn)版)
J2EE:java2 enterprise edition( Java 2 企業(yè)版)
J2ME:java2 micro edition (Java 2 微縮版)
他們的范圍是:J2SE包含于J2EE中,J2ME包含了J2SE的核心類,但新添加了一些專有類
應(yīng)用場合,API的覆蓋范圍各不相同。
籠統(tǒng)的講,可以這樣理解:J2SE是基礎(chǔ);壓縮一點(diǎn),再增加一些CLDC等方面的特性就是J2ME;擴(kuò)充一點(diǎn),再增加一些EJB等企業(yè)應(yīng)用方面的特性就是JBoss。
補(bǔ)充一點(diǎn)J2EE更恰當(dāng)?shù)恼f,應(yīng)該是JAVA2企業(yè)開發(fā)的技術(shù)規(guī)范,不僅僅是比標(biāo)準(zhǔn)版多了一些類。J2EE又包括許多組件,如Jsp,Servlet,javaBean,EJB,Java數(shù)據(jù)庫連接,JavaMail等。
J2SE商業(yè)版本,標(biāo)準(zhǔn)版本 (Java2 Standard Edition) 定位在客戶端,主要用于桌面應(yīng)用軟件的編程。
J2SE 包含那些構(gòu)成Java語言核心的類。
比如:數(shù)據(jù)庫連接、接口定義、輸入/輸出、網(wǎng)絡(luò)編程
J2SE 是J2EE的基礎(chǔ),他大量的JDK代碼庫是每個要學(xué)習(xí)J2EE的編程人員必須掌握的。
從JDK5.0開始,不再叫J2SE,改名為Java SE了,因?yàn)槟莻€2已經(jīng)失去了其應(yīng)該有的意義。
特性
(以下每種特性基本上都有示例代碼,或要了解其它特性,詳見參考資料的“J2SE 1.5(并非最新版本)簡介”)
易于開發(fā)性
您也許已經(jīng)見過這樣的報告,即一些新的Java語言變化包含易于開發(fā)性主題。這些變化包括泛型、元數(shù)據(jù)、autoboxing、增強(qiáng)的 for 循環(huán)、枚舉類型、靜態(tài)導(dǎo)入、C 風(fēng)格的格式化 I/O、可變參數(shù)、并發(fā)實(shí)用程序以及更簡單的 RMI 接口生成。
JSR 201 包括如下四個語言變化:增強(qiáng)的 for 循環(huán)、枚舉類型、靜態(tài)導(dǎo)入和 autoboxing;JSR175 指定了新的元數(shù)據(jù)功能,而 JSR 14 則詳細(xì)說明了泛型。
javac編譯器執(zhí)行的默認(rèn)語言規(guī)范是版本 1.4(并非最新版本)。這意味著要利用以下語言變化的任何好處,需要向javac命令傳遞參數(shù) -source 1.5。
元數(shù)據(jù)
J2SE 1.5 (并非最新版本)中的元數(shù)據(jù)特性提供這樣的能力,即向 Java 類、接口、方法和字段關(guān)聯(lián)附加的數(shù)據(jù)。這些附加的數(shù)據(jù)或者注釋,可以被javac編譯器或其他工具讀取,并且根據(jù)配置不同,可以被保存在類文件中,也可以在運(yùn)行時使用 Java 反射API被發(fā)現(xiàn)。
向 Java 平臺增加元數(shù)據(jù)的一個主要原因是,使得開發(fā)工具和運(yùn)行工具有一個通用的基礎(chǔ)結(jié)構(gòu),以減少開發(fā)和部署所需的成本。工具可以使用元數(shù)據(jù)信息生成附加的源代碼,或者在調(diào)試時提供附加信息。
下面的例子用元數(shù)據(jù)工具創(chuàng)建了一個調(diào)試元數(shù)據(jù)注釋,這些元數(shù)據(jù)注釋然后又簡單地在運(yùn)行時顯示出來。可以想像,大部分的元數(shù)據(jù)標(biāo)簽形成一個標(biāo)準(zhǔn),即一個良好規(guī)范的集合。利用一個元數(shù)據(jù)處理工具,許多重復(fù)的代碼編寫步驟可以減少成一個簡練的元數(shù)據(jù)標(biāo)簽。
泛型
泛型一直是 Java 社團(tuán)所廣泛期待的,現(xiàn)在已經(jīng)是 J2SE 1.5 的一部分了。最先見到使用泛型的地方是在 Collections API 中。CollectionsAPI提供可以被多個 Java 類型使用的公共功能性,比如LinkedLists、ArrayLists 和 HashMaps。下一個例子使用 1.4.2 庫和默認(rèn)的javac編譯模式。
泛型化 API 的用戶必須使用 <> 符號簡單地聲明在編譯類型中使用的類型。不需要任何類型轉(zhuǎn)換,在本例中試圖向一個 Integer 類型的集合中添加 String 對象將會在編譯時被捕獲。
因此,泛型允許 API 設(shè)計(jì)者提供這樣的公共功能性:可以與多種數(shù)據(jù)類型一起使用,也可以在編譯時出于類型安全對它進(jìn)行檢查。
設(shè)計(jì)自己的 Generic API 比起只是使用它們來說要稍微復(fù)雜一些。請從查看java.util.Collection源代碼和API指南開始。
并發(fā)實(shí)用程序
并發(fā)實(shí)用程序庫由 Doug Lea 定義在 JSR-166 中,是 J2SE 1.5 平臺中流行的并發(fā)軟件包的一個特殊版本。它提供強(qiáng)大的、高級別的線程構(gòu)造,包括 executors(這是一個線程任務(wù)框架)、線程安全隊(duì)列、Timers、鎖(包括原子鎖)和其他同步原語。
著名的旗語(semaphore)是這樣一個鎖。旗語與現(xiàn)在使用的 wait 的使用方式相同,用于限制對一塊代碼的訪問。旗語更加靈活,并且也允許許多并發(fā)的線程訪問,同時允許您在獲得一個鎖之前對它進(jìn)行測試。
可擴(kuò)展性和性能
1.5 版本承諾在可擴(kuò)展性和性能方面的改進(jìn),新的重點(diǎn)在于啟動時間和內(nèi)存占用,使它更加易于以最大的速度部署應(yīng)用程序。
最重大的一個更新是引入了 Hotspot JVM 中的類數(shù)據(jù)共享。該技術(shù)不僅在多個正在運(yùn)行的 JavaOS 之間共享只讀數(shù)據(jù),而且改進(jìn)了啟動時間,因?yàn)楹诵牡腏VM類都是預(yù)先打包的。
性能工效是 J2SE 1.5 中的一個新特性,這意味著如果您一直使用的是以前版本中專門的 JVM 運(yùn)行時選項(xiàng),那么可能值得不用選項(xiàng)或者用很少的選項(xiàng)重新驗(yàn)證您的性能。
監(jiān)控和可管理性
監(jiān)控和可管理性是 Java 平臺中的RAS(Reliability, Availability, Serviceability,即可靠性、可用性、可服務(wù)性) 的一個關(guān)鍵組件。
JavaOS Monitoring & ManagementAPI(JSR-174) 指定一組全面的可以從正在運(yùn)行的JVM進(jìn)行監(jiān)控的 JVM internals。該信息可通過 JMX (JSR-003) MBeans 訪問到,也可以使用JMX遠(yuǎn)程接口 (JSR-160) 和行業(yè)標(biāo)準(zhǔn)SNMP工具而遠(yuǎn)程訪問得到。
桌面客戶端
Java桌面客戶端保留有 Java 平臺的一個關(guān)鍵組件,并且這一點(diǎn)成了 J2SE 1.5 中許多改進(jìn)的焦點(diǎn)。
這個 Beta 版本包含啟動時間和內(nèi)存占用方面的一些早期改進(jìn)。該版本不僅更快,并且Swing工具集采用了一個嶄新的叫做Ocean的主題。
通過建立 J2SE 1.4.2 中的更新,GTK和 Windows XP 外觀方面有了更進(jìn)一步的改進(jìn)。
具有最新OpenGL驅(qū)動程序并且選擇了圖形卡的Linux和Solaris用戶,可以使用下面的運(yùn)行時屬性從 Java2D 獲得本機(jī)硬件加速。
核心 XML 支持
J2SE 1.5 引入了核心XML平臺的幾個修訂,包括 XML 1.1 和Namespace、XML Schema、SAX2.0.1、XSLT和快速 XLSTC 編譯器,以及最后的 DOM 第 3 層支持。
除了支持核心 XML 之外,未來版本的 Java Web Services Developer Pack 將交付最新的 Web 服務(wù)標(biāo)準(zhǔn):JAX-RPC &SAAJ(WSDL/SOAP)、JAXB、XML Encryption and Digital Signature,以及用于注冊的JAXR。
輔助字符支持
32 位的輔助字符支持作為傳輸?shù)経nicode4.0 支持的一部分,已經(jīng)慎重地添加到該平臺。輔助字符被編碼為一對特殊的UTF16值,以生成一個不同的字符或者碼點(diǎn)(codepoint)。一個代理對(surrogate pair)是一個高 UTF16 值和后面的一個低 UTF16 值的組合。這些高值和低值來自一個特殊范圍的 UTF16 值。
一般來說,當(dāng)使用 String 或者字符序列時,核心 API 庫將透明地為您處理新的輔助字符。但是因?yàn)?Java "char" 仍然保留為 16 位,所以非常少的一些使用 char 作為參數(shù)的方法,現(xiàn)在有了足夠的可以接受 int 值的方法,其中 int 值可以代表新的更大的值。特別是 Character 類,具有附加的方法來檢索當(dāng)前的字符和接下來的字符,以便檢索輔助的碼點(diǎn)值。
JDBC RowSets
Java數(shù)據(jù)庫連接行集支持有兩個主要的更新。CachedRowSet 包含從數(shù)據(jù)庫檢索的行的內(nèi)存中的集合。但是它們也是不連接的,這意味著以后更新可以與數(shù)據(jù)庫重新同步。另一個組件是 WebRowSet,它使用數(shù)據(jù)庫行通過 XML 來傳輸數(shù)據(jù)。
證書比較
J2SE與Java 代碼簽名證書比較
Java代碼簽名證書主要用于證明軟件開發(fā)者開發(fā)的軟件代碼符合 Sun Java 規(guī)范。您可以使用Java 代碼簽名證書來為您的 Java 代碼進(jìn)行數(shù)字簽名,以便通過互聯(lián)網(wǎng)安全分發(fā),使得最終用戶能確信您的代碼已經(jīng)通過權(quán)威的第三方認(rèn)證,而且沒有在傳輸過程中被非法篡改和被破壞。
Java 代碼簽名證書可以用于數(shù)字簽名運(yùn)行J2ME MIDlet(MIDP2.0)代碼,支持諾基亞和索愛等手機(jī)的MIDlet應(yīng)用軟件,運(yùn)行簽名后的MIDlet Suite就會顯示軟件發(fā)行商名稱,否則會顯示讓用戶不敢下載的警告“應(yīng)用軟件來源未知,繼續(xù)?”。同時,簽名后訪問網(wǎng)絡(luò)等都不會彈出煩人的警告框了,讓手機(jī)應(yīng)用更加安全,更有利于軟件開發(fā)商推廣其應(yīng)用軟件。如果需要簽名J2SE的.Jar代碼,則推薦您購買Thawte Java代碼簽名證書,因?yàn)槠鋬r格比verisign的便宜。如果您希望有比Thawte Java代碼簽名證書更便宜的Java代碼簽名證書,則您可以選購 WoSign Java代碼簽名證書,但請注意,WoSign Java代碼簽名證書只支持Java J2SE 1.5.008版本或以上版本。
參考資料 >