J2SE的基本簡介與J2EE/J2ME的差異

小草莓Piper發表於2019-07-04

J2SE簡介與J2EE、J2ME的比較

       Java2平臺包括:標準版(J2SE)、企業版(J2EE)和微縮版(J2ME)三個版本。

       J2SE,J2ME和J2EE,這也就是SunONE(Open NetEnvironment)體系。

       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.1、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 來傳輸資料。

相關文章