developerWorks Java? technology 專區包含關於 Java 的數百篇文章、教程和技巧,可以幫助軟件開發人員瞭解 Java 平臺和相關技術的大多數方面。但是,如果您正在尋找一個起點,僅僅是篩選 Web 上現有的大量參考資料就會令您暈頭轉向。developerWorks 提供這個頁面是爲了在 Java 語言的總體環境中概述 Java 技術的基本知識。它提供了 developerWorks 中相關的介紹性內容、其他教學參考資料以及 IBM 下載和產品的鏈接,可以以此爲起點對 Java 進行進一步探索。
Java 技術既是一種高級的面向對象的編程語言,也是一個平臺。Java 技術基於 Java 虛擬機(Java virtual machine,JVM)的概念 —— 這是語言與底層軟件和硬件之間的一種轉換器。Java 語言的所有實現都必須實現 JVM,從而使 Java 程序可以在有 JVM 的任何系統上運行。
Java 編程語言(Java programming language) 與衆不同之處在於:Java 程序既是編譯型的(compiled)(轉換爲一種稱爲 Java 字節碼的中間語言),又是解釋型的(interpreted)(JVM 對字節碼進行解析和運行)。編譯只進行一次,而解釋在每次運行程序時都會進行。編譯後的字節碼採用一種針對 JVM 優化過的機器碼形式;解釋器是 JVM 的實現。
Java 平臺(Java platform) 是一種純軟件平臺,它可以在各種基於硬件的平臺上運行。它有三個版本(參見後面的 Java 平臺的多個版本)。它由 JVM 和 Java 應用程序編程接口(Java Application Programming Interface,API)組成。Java API 是一個大型的現成軟件組件(類)集合,它可以簡化 applet 和應用程序的開發和部署,包括健壯、安全且可互操作的企業應用程序。它涵蓋從基本對象到連網和安全性,再到 XML 生成和 Web 服務的所有東西。Java API 組織成相關類和接口的庫;庫也稱爲包(package)。
除了 Java API 之外,每個完整的 Java 平臺實現還包含:
- 用來編譯、運行、監視、調試應用程序以及建立應用程序文檔的開發工具。
- 用來部署應用程序的標準機制。
- 用來創建複雜的圖形用戶界面(GUI)的用戶界面工具包。
- 用來啓用數據庫訪問和操作遠程對象的集成庫。
Java 技術是最初由 Sun Microsystems 公司開發的。Java Community Process(JCP,一個由全世界的 Java 開發人員和獲得許可的人員組成的開放性組織)對 Java 技術規範、參考實現和技術兼容性包進行開發和修訂。在 2006 年 8 月,Sun Microsystems 宣佈它打算開放 Java 平臺的源碼,並開始徵詢對許可協議和管理方式的反饋。
Java 語言的主要好處是,Java 應用程序可以跨硬件平臺和操作系統進行移植 —— 這是因爲每個平臺上安裝的 JVM 都可以理解同樣的字節碼。
Java 語言和平臺的可伸縮性非常強。在低端,現有的應用程序可以很容易地適應內存資源有限的設備。這種語言是進行服務器端 Web 編程的理想框架。因爲它被設計爲按照一種安全的方式通過網絡運行,在通過互聯網進行操作時,它提供了一定程度的安全性。在本質上,Java 技術將用戶的計算能力從桌面擴展到了 Web 資源。Web 組件由稱爲Web 容器(Web container) 的運行時平臺支持,Web 容器的服務包括請求分派、安全性、併發性、生命週期管理以及對命名、事務和電子郵件等 API 的訪問。在高端,Java 應用服務器(application server) 作爲 Java 組件、XML 和 Web 服務的 Web 容器,可以與數據庫進行交互並提供動態的 Web 內容;它們還爲企業應用程序提供應用程序開發環境,具有事務管理、安全性、集羣、性能、可用性、連接性和可伸縮性等功能。
Java 語言是第一批支持企業開放標準的技術之一,支持使用 XML 和 Web 服務跨業務線共享信息和應用程序(參見下面的 Java 技術與 SOA/Web 服務的關係)。Java 技術是許多 IBM 產品和技術諮詢服務的核心(參見下面的 Java 程序員可用的 IBM 工具和產品),是 IBM 發展計劃的重要部分:
Java 平臺的多個版本 Java 平臺有三個版本,這使軟件開發人員、服務提供商和設備生產商可以針對特定的市場進行開發:
Java SE(Java Platform,Standard Edition)。Java SE 以前稱爲 J2SE。它允許開發和部署在桌面、服務器、嵌入式環境和實時環境中使用的 Java 應用程序。Java SE 包含了支持 Java Web 服務開發的類,併爲 Java Platform,Enterprise Edition(Java EE)提供基礎。大多數 Java 開發人員使用 Java SE 5,也稱爲 Java 5.0 或 “Tiger”(2006 年 6 月,Java SE 6 或 “Mustang” 發佈了 beta 版。)
系列討論了以前的 Java SE 平臺版本,J2SE 1.4 或 “Merlin”。許多現有的 Java 應用程序基於 J2SE 1.4,而且這個系列中的大多數概念是與 Java SE 5 編程相關的。
Java EE(Java Platform,Enterprise Edition)。這個版本以前稱爲 J2EE。企業版本幫助開發和部署可移植、健壯、可伸縮且安全的服務器端 Java 應用程序。Java EE 是在 Java SE 的基礎上構建的,它提供 Web 服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0 應用程序。
專欄提供關於 Java EE 的知識。
文章系列幫助 .NET、Windows 客戶機/服務器和 ASP 應用程序的開發人員遷移到 Java EE 平臺。
Java ME(Java Platform,Micro Edition)。這個版本以前稱爲 J2ME。Java ME 爲在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和打印機)上運行的應用程序提供一個健壯且靈活的環境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內置的網絡協議以及對可以動態下載的連網和離線應用程序的豐富支持。基於 Java ME 規範的應用程序只需編寫一次,就可以用於許多設備,而且可以利用每個設備的本機功能。
這個全面的 包含兩個教程和兩篇配套文章,它們集中介紹 J2ME 和 Mobile Information Device Profile(MIDP)。
還可以在 專區中找到許多 J2ME 參考資料,比如分兩部分的教程 “”。
developerWorks Java technology 專區維護了 標準 Java 組件技術 的完整詞彙表。下面是每個 Java 平臺版本的組件、可選包和擴展的部分列表,以及簡短的描述和參考資料的鏈接,可以通過這些參考資料進一步瞭解這些組件在 Java 開發中的作用。注意,下面的許多參考資料同時適用於三個版本。
Java SE 中的技術:
- JavaBeans Component Architecture 是一個爲 Java 平臺定義可重用軟件組件的框架,可以在圖形化構建工具中設計這些組件。(參見 “Reflecting, introspecting, and customizing JavaBeans”。)
- Java Foundation Classes(Swing)(JFC)是一套 Java 類庫,支持爲基於 Java 的客戶機應用程序構建 GUI 和圖形化功能。(參見教程 “Swing 入門”;“使用 Swing 進行動態界面設計” 和 “增強圖形用戶界面的可訪問性” 也有助於掌握 Swing。)
- JavaHelp 是一個獨立於平臺的可擴展的幫助系統,開發人員和作者可以使用它將在線幫助集成到 applet、組件、應用程序、操作系統和設備中,還可以提供基於 Web 的在線文檔。(參見 “向 Java 應用程序伸出援助之手”。)
- Java Native Interface(JNI)使 JVM 中運行的 Java 代碼可以與用其他編程語言編寫的應用程序和庫進行互操作。(參見 “用 Java 代碼處理本地對象的事件”。)
- Java Platform Debugger Architecture(JPDA)是用於 Java SE 的調試支持基礎結構。(參見 “診斷 Java 代碼: 軟件開發的未來”。)
- Java 2D API 是一套用於高級 2D 圖形和圖像的類(爲圖像組合和 alpha 通道圖像提供豐富的支持)、一套提供精確的顏色空間定義和轉換的類以及一套面向顯示的圖像操作符。(參見教程 “Java 2D 簡介”。)
- Java Web start 允許用戶通過一次點擊下載並啓動特性完整的應用程序(比如電子表格),而不需要進行安裝,從而簡化 Java 應用程序的部署。(參見 “Java Web Start”。)
- Certification Path API 提供了一套用於創建、構建和檢驗認證路徑(也稱爲 “認證鏈”)的 API,可以安全地建立公共密鑰到主體的映射。(參見 “爲測試 Java 應用程序生成證書鏈”。)
- Java Database Connectivity(JDBC)是一個 API,它使用戶能夠從 Java 代碼中訪問大多數表格式數據源,提供了對許多 SQL 數據庫的跨 DBMS 連接能力,並可以訪問其他表格式數據源,比如電子表格或平面文件。(參見 “JDBC 3.0 有什麼新特性” 和教程 “理解 JDBC”。)
- Java Advanced Imaging(JAI)是一個 API,它提供一套面向對象的接口,這些接口支持一個簡單的高級編程模型,使開發人員能夠輕鬆地操作圖像。(參見 “利用 JSP 代碼管理您的圖像”。)
- Java Authentication and Authorization Service(JAAS)是一個包,它實現了標準的 Pluggable Authentication Module(PAM)框架的 Java 版本並支持基於用戶的授權,使服務能夠對用戶進行身份驗證和訪問控制。(參見 “用 JAAS 和 JSSE 實現 Java 安全性” 和 “Java 授權內幕”;教程 “Java 安全性, 第 2 部分: 認證與授權” 也有幫助。)
- Java Cryptography Extension(JCE)是一組包,它們提供用於加密、密鑰生成和協商以及 Message Authentication Code(MAC)算法的框架和實現。它提供對對稱、不對稱、塊和流密碼的加密支持,它還支持安全流和密封的對象。(參見教程 “Java 安全性,第 1 部分: 密碼學基礎”。)
- Java Data Objects(JDO)是一種基於標準接口的持久化 Java 模型抽象,使程序員能夠將 Java 領域模型實例直接存儲進持久化存儲(數據庫)中,這可以替代直接文件 I/O、串行化、JDBC 以及 EJB Bean Managed Persistence(BMP)或 Container Managed Persistence(CMP)實體 bean 等方法。(參見教程 “Java 數據對象上機實踐”;更深入的解釋請參考 “無需容器的對象關係映射”。)
- Java Management Extensions(JMX)提供了用於構建分佈式、基於 Web、模塊化且動態的應用程序的工具,這些應用程序可以用來管理和監視設備、應用程序和服務驅動的網絡。(參見 “使用 Java 平臺管理 bean”。)
- Java Media Framework(JMF)可以將音頻、視頻和其他基於時間的媒體添加到 Java 應用程序和 applet 中。(參見教程 “Java Media Framework basics”。)
- Java Naming and Directory Interface(JNDI)爲 Java 應用程序提供一個連接到企業中的多個命名和目錄服務的統一接口,可以無縫地連接結構不同的企業命名和目錄服務。(參見 “工業強度的 JNDI 優化”;還可以參考 “走出 JNDI 迷宮”。)
- Java Secure Socket Extensions(JSSE)是一組包,它們支持安全的互聯網通信,實現了 SSL(Secure Sockets Layer)和 TLS(Transport Layer Security)的 Java 版本,包含數據加密、服務器身份驗證、消息完整性和可選的客戶機身份驗證等功能。(參見 “用 JAAS 和 JSSE 實現 Java 安全性”;還可以參考教程 “將 JSSE 用於安全套接字通信”。)
- Java Speech API(JSAPI)包含 Grammar Format(JSGF)和 Markup Language(JSML)規範,使 Java 應用程序能夠將語音技術集成到用戶界面中。JSAPI 定義一個跨平臺的 API,支持命令和控制識別器、聽寫系統和語音識別器。(參見 “Java 2 用戶界面”。)
- Java 3D 是一個 API,它提供一套面向對象的接口,這些接口支持一個簡單的高級編程模型,開發人員可以使用這個 API 輕鬆地將可伸縮的獨立於平臺的 3D 圖形集成到 Java 應用程序中。(參見教程 “Java 3D 探奇”。)
- Metadata Facility 允許給類、接口、字段和方法標上特定的屬性,從而使開發工具、部署工具和運行時庫能夠以特殊方式處理它們。(參見 “Tiger 中的註釋,第 1 部分: 向 Java 代碼中添加元數據”。)
- Java Content Repository API 是一個用於訪問 Java SE 中獨立於實現的內容存儲庫的 API。內容存儲庫是一個高級信息管理系統,它是傳統數據存儲庫的超集。(參見 “Java Content Repository API 簡介”。)
- Enumerations(枚舉) 是一種類型,允許以類型安全的方式將特定的數據表示爲常量。(參見 “枚舉類型入門”。)
- Generics(泛型) 允許定義具有抽象類型的參數的類,可以在實例化時指定這些參數。(參見 “介紹 JDK 5.0 中的泛型”。)
- Concurrency Utilities 是一套中級實用程序,提供了併發程序中常用的功能。(參見教程 “JDK 5.0 中的併發”。)
- Java API for XML Processing(JAXP)允許 Java 應用程序獨立於特定的 XML 處理實現對 XML 文檔進行解析和轉換,允許靈活地在 XML 處理程序之間進行切換,而不需要修改應用程序代碼。Java API for XML Binding(JAXB)允許在 XML 文檔和 Java 對象之間進行自動的映射。(參見分三部分的教程 “利用 Java 技術進行 XML 編程”;還可以閱讀 “JAXP 全面介紹,第 1 部分” 和 “JAXP 全面介紹,第 1 部分” 來進一步瞭解 JAXP; 實用數據綁定 文章系列提供了更多信息;還可以訪問 developerWorks XML 專區。)
- SOAP with Attachments API for Java(SAAJ)使開發人員能夠按照 SOAP 1.1 規範和 SOAP with Attachments note 生成和消費消息。(參見 “技巧: 使用SAAJ發送和接收SOAP消息”;“Java Web 服務進階” 會幫助您掌握 Java Web Services Developers Pack。)
馴服 Tiger 專欄對 Java SE 5 做了精彩的概述。
|