Java2平臺包括:標準版(J2SE)、企業版(J2EE)和微縮版(J2ME)三個版本。java
J2SE,J2ME和J2EE,這也就是SunONE(Open NetEnvironment)體系。git
J2SE就是Java2的標準版,主要用於桌面應用軟件的編程;數據庫
J2ME主要應用於嵌入式系統開發,如手機和PDA的編程;編程
J2EE是Java2的企業版,主要用於分佈式的網絡程序的開發,如電子商務網站和ERP系統。安全
Standard Edition(標準版) J2SE 包含那些構成Java語言核心的類。好比:數據庫鏈接、接口定義、輸入/輸出、網絡編程網絡
Enterprise Edition(企業版) J2EE 包含J2SE 中的類,而且還包含用於開發企業級應用的類。好比:EJB、servlet、JSP、XML、事務控制併發
Micro Edition(微縮版) J2ME 包含J2SE中一部分類,用於消費類電子產品的軟件開發。好比:呼機、智能卡、手機、PDA、機頂盒框架
J2SE: java 2 Standard edition (java 2 標準版)分佈式
J2EE: java 2 enterprise edition( Java 2 企業版)工具
J2ME: java 2 micro edition (Java 2 微縮版)
他們的範圍是:J2SE包含於J2EE中,J2ME包含了J2SE的核心類,但新添加了一些專有類
應用場合,API的覆蓋範圍各不相同。
籠統的講,能夠這樣理解:J2SE是基礎;壓縮一點,再增長一些CLDC等方面的特性就是J2ME;擴充一點,再增長一些EJB等企業應用方面的特性就是J2EE。
補充一點J2EE更恰當的說,應該是JAVA2企業開發的技術規範,不只僅是比標準版多了一些類。J2EE又包括許多組件,如Jsp, Servlet, JavaBean, EJB, JDBC, JavaMail等。
J2SE商業版本,標準版本 (Java2 Standard Edition) 定位在客戶端,主要用於桌面應用軟件的編程。
J2SE 包含那些構成Java語言核心的類。
好比:數據庫鏈接、接口定義、輸入/輸出、網絡編程
J2SE 是J2EE的基礎,他大量的JDK代碼庫是每一個要學習J2EE的編程人員必須掌握的。
從JDK 5.0開始,再也不叫J2SE,更名爲 Java SE了,由於那個2已經失去了其應該有的意義。
易於開發性
您也許已經見過這樣的報告,即一些新的 Java 語言變化包含易於開發性主題。這些變化包括泛型、元數據、autoboxing、加強的 for 循環、枚舉類型、靜態導入、C 風格的格式化 I/O、可變參數、併發實用程序以及更簡單的 RMI 接口生成。
JSR 201 包括以下四個語言變化:加強的 for 循環、枚舉類型、靜態導入和 autoboxing;JSR 175 指定了新的元數據功能,而 JSR 14 則詳細說明了泛型。
javac 編譯器執行的默認語言規範是版本 1.4(並不是最新版本)。這意味着要利用如下語言變化的任何好處,須要向 javac 命令傳遞參數 -source 1.5。
元數據
J2SE 1.5 (並不是最新版本)中的元數據特性提供這樣的能力,即向 Java 類、接口、方法和字段關聯附加的數據。這些附加的數據或者註釋,能夠被 javac 編譯器或其餘工具讀取,而且根據配置不一樣,能夠被保存在類文件中,也能夠在運行時使用 Java 反射 API 被發現。
向 Java 平臺增長元數據的一個主要緣由是,使得開發工具和運行工具備一個通用的基礎結構,以減小開發和部署所需的成本。工具可使用元數據信息生成附加的源代碼,或者在調試時提供附加信息。
下面的例子用元數據工具建立了一個調試元數據註釋,這些元數據註釋而後又簡單地在運行時顯示出來。能夠想像,大部分的元數據標籤造成一個標準,即一個良好規範的集合。利用一個元數據處理工具,許多重複的代碼編寫步驟能夠減小成一個簡練的元數據標籤。
泛型
泛型一直是 Java 社團所普遍期待的,如今已是 J2SE 1.5 的一部分了。最早見到使用泛型的地方是在 Collections API 中。Collections API 提供能夠被多個 Java 類型使用的公共功能性,好比 LinkedLists、ArrayLists 和 HashMaps。下一個例子使用 1.4.2 庫和默認的 javac 編譯模式。
泛型化 API 的用戶必須使用 <> 符號簡單地聲明在編譯類型中使用的類型。不須要任何類型轉換,在本例中試圖向一個 Integer 類型的集合中添加 String 對象將會在編譯時被捕獲。
所以,泛型容許 API 設計者提供這樣的公共功能性:能夠與多種數據類型一塊兒使用,也能夠在編譯時出於類型安全對它進行檢查。
設計本身的 Generic API 比起只是使用它們來講要稍微複雜一些。請從查看 java.util.Collection 源代碼和 API 指南開始。
併發實用程序
併發實用程序庫由 Doug Lea 定義在 JSR-166 中,是 J2SE 1.5 平臺中流行的併發軟件包的一個特殊版本。它提供強大的、高級別的線程構造,包括 executors(這是一個線程任務框架)、線程安全隊列、Timers、鎖(包括原子鎖)和其餘同步原語。
着名的旗語(semaphore)是這樣一個鎖。旗語與如今使用的 wait 的使用方式相同,用於限制對一塊代碼的訪問。旗語更加靈活,而且也容許許多併發的線程訪問,同時容許您在得到一個鎖以前對它進行測試。
可擴展性和性能
1.5 版本承諾在可擴展性和性能方面的改進,新的重點在於啓動時間和內存佔用,使它更加易於以最大的速度部署應用程序。
最重大的一個更新是引入了 Hotspot JVM 中的類數據共享。該技術不只在多個正在運行的 JVM 之間共享只讀數據,並且改進了啓動時間,由於核心的 JVM 類都是預先打包的。
性能工效是 J2SE 1.5 中的一個新特性,這意味着若是您一直使用的是之前版本中專門的 JVM 運行時選項, 那麼可能值得不用選項或者用不多的選項從新驗證您的性能。
監控和可管理性
監控和可管理性是 Java 平臺中的 RAS (Reliability, Availability, Serviceability,便可靠性、可用性、可服務性) 的一個關鍵組件。
JVM Monitoring & Management API (JSR-174) 指定一組全面的能夠從正在運行的 JVM 進行監控的 JVM internals。 該信息可經過 JMX (JSR-003) MBeans 訪問到,也可使用 JMX 遠程接口 (JSR-160) 和行業標準 SNMP 工具而遠程訪問獲得。
桌面客戶端
Java 桌面客戶端保留有 Java 平臺的一個關鍵組件,而且這一點成了 J2SE 1.5 中許多改進的焦點。
這個 Beta 版本包含啓動時間和內存佔用方面的一些早期改進。該版本不只更快,而且 Swing 工具集採用了一個暫新的叫作 Ocean 的主題。
經過創建 J2SE 1.4.2 中的更新,GTK 和 Windows XP 外觀方面有了更進一步的改進。
具備最新 OpenGL 驅動程序而且選擇了圖形卡的 Linux 和 Solaris 用戶,可使用下面的運行時屬性從 Java2D 得到本機硬件加速。
核心 XML 支持
J2SE 1.5 引入了核心 XML 平臺的幾個修訂,包括 XML 1.1 和 Namespace、XML Schema、SAX 2.0.一、XSLT 和快速 XLSTC 編譯器,以及最後的 DOM 第 3 層支持。
除了支持核心 XML 以外,將來版本的 Java Web Services Developer Pack 將交付最新的 Web 服務標準:JAX-RPC & SAAJ (WSDL/SOAP)、JAXB、XML Encryption and Digital Signature,以及用於註冊的 JAXR。
輔助字符支持
32 位的輔助字符支持做爲傳輸到 Unicode 4.0 支持的一部分,已經慎重地添加到該平臺。輔助字符被編碼爲一對特殊的 UTF16 值,以生成一個不一樣的字符或者碼點(codepoint)。一個代理對(surrogate pair)是一個高 UTF16 值和後面的一個低 UTF16 值的組合。這些高值和低值來自一個特殊範圍的 UTF16 值。
通常來講,當使用 String 或者字符序列時,核心 API 庫將透明地爲您處理新的輔助字符。可是由於 Java "char" 仍然保留爲 16 位,因此很是少的一些使用 char 做爲參數的方法,如今有了足夠的能夠接受 int 值的方法,其中 int 值能夠表明新的更大的值。特別是 Character 類,具備附加的方法來檢索當前的字符和接下來的字符,以便檢索輔助的碼點值。
JDBC RowSets
JDBC 行集支持有兩個主要的更新。CachedRowSet 包含從數據庫檢索的行的內存中的集合。可是它們也是不鏈接的,這意味着之後更新能夠與數據庫從新同步。另外一個組件是 WebRowSet,它使用數據庫行經過 XML 來傳輸數據。