什么是 Java 技術(shù)?
Java 技術(shù)(版本 2)是一種面向?qū)ο蟮木幊陶Z(yǔ)言,是 Sun Microsystems 所開(kāi)發(fā)的編程平臺(tái)。Java 技術(shù)基于單一 Java 虛擬機(jī)(JVM)的概念,JVM 是編程語(yǔ)言與機(jī)器底層軟件和硬件之間的翻譯器。編程語(yǔ)言的所有實(shí)現(xiàn)都必須模擬 JVM,從而使 Java 程序可以在具有 JVM 版本的任何系統(tǒng)上運(yùn)行。
Java 編程語(yǔ)言是與眾不同的,因?yàn)?Java 程序需要經(jīng)過(guò)編譯(翻譯為叫做 Java 字節(jié)碼的中間語(yǔ)言)和解釋?zhuān)ㄍㄟ^(guò) JVM 分析和運(yùn)行字節(jié)碼)。編譯只進(jìn)行一次,而解釋則在每次運(yùn)行程序時(shí)都要進(jìn)行。編譯的字節(jié)碼是 JVM 的最佳機(jī)器碼形式;解釋程序是 JVM 的實(shí)現(xiàn)。
Java 平臺(tái)具有三個(gè)版本(請(qǐng)參閱下面的 Java 平臺(tái)的多個(gè)版本),該平臺(tái)由 JVM 和 Java Application Programming Interface (API) 組成,Java API 是現(xiàn)成軟件組件的集合,便于進(jìn)行 applet 和應(yīng)用程序的開(kāi)發(fā)和部署,其中包括健壯的、安全的和可互操作的企業(yè)應(yīng)用程序。Java API 被分組到相關(guān)類(lèi)和接口的庫(kù)中;這些庫(kù)稱(chēng)為包。
了解更多信息:
要了解 Sun 的 Java 編程語(yǔ)言的未來(lái)發(fā)展方向,請(qǐng)閱讀 2003 JavaOne Developer Conference 的 technical keynote digest。
Java 平臺(tái)的多個(gè)版本
因?yàn)?Java 技術(shù)的迅速普及,開(kāi)發(fā)人員強(qiáng)烈要求某些東西更簡(jiǎn)單些。Sun Microsystems 通過(guò)創(chuàng)建三個(gè) Java 平臺(tái)版本來(lái)滿(mǎn)足此需要 ― Standard Edition、Enterprise Edition 和 Micro Edition。
了解更多信息:
J2SE (Java 2 Standard Edition)。包括標(biāo)準(zhǔn)的 Java 2 SDK、工具、運(yùn)行時(shí)環(huán)境和 API,用于那些采用 Java 程序設(shè)計(jì)語(yǔ)言編寫(xiě)、部署和運(yùn)行 applet 和應(yīng)用程序的開(kāi)發(fā)人員。 Merlin 的魔力 專(zhuān)欄極好地介紹了最新版本的 J2SE 1.4。
J2EE (Java 2 Enterprise Edition)。通過(guò)基于標(biāo)準(zhǔn)化模塊組件,通過(guò)為這些組件提供一整套服務(wù),以及通過(guò)自動(dòng)處理應(yīng)用程序行為的許多細(xì)節(jié),而無(wú)需進(jìn)行復(fù)雜編程,企業(yè)版簡(jiǎn)化了多層企業(yè)應(yīng)用程序的構(gòu)造和部署。J2EE 探索者 專(zhuān)欄將增加您對(duì)此版本的了解。
J2ME (Java 2 Micro Edition)。該版本是高度優(yōu)化的 Java 運(yùn)行時(shí)環(huán)境,針對(duì)特定的消費(fèi)者領(lǐng)域,從智能型手機(jī)或?qū)ず魴C(jī)到機(jī)頂盒等一系列小型設(shè)備(外形小或者存儲(chǔ)能力受限)。在“ J2ME 101,第 1 部分:介紹 MIDP 的高層 UI”教程中可以了解更多關(guān)于 J2ME 的信息。(您還可以在 developerWorks 無(wú)線(xiàn) 專(zhuān)題找到許多 J2ME 參考資料。)
Java 技術(shù)為什么重要?
總體來(lái)說(shuō),Java 語(yǔ)言的主要優(yōu)點(diǎn)在于跨平臺(tái)和操作系統(tǒng)的可移植性,以及它可以通過(guò)帶寬相對(duì)較窄的通道提供(比如撥號(hào)連接)。Java 語(yǔ)言還具有可伸縮性;現(xiàn)有應(yīng)用程序可以很容易地適應(yīng)那些受內(nèi)存資源限制的設(shè)備。另外,由于 Java 語(yǔ)言設(shè)計(jì)用于通過(guò)網(wǎng)絡(luò)以安全的方式運(yùn)行,所以當(dāng)通過(guò) Internet 操作時(shí),它也提供了此級(jí)別的安全性。本質(zhì)上,Java 技術(shù)將用戶(hù)計(jì)算能力從桌面擴(kuò)展到了 Web 資源。
什么是 Java 組件技術(shù)?
管理 Java 技術(shù)縮略詞的字母湯(alphabet soup)可能是一項(xiàng)巨大的任務(wù),就正如通過(guò) Java Community Process 管理 Java 語(yǔ)言的發(fā)展一樣。下面是 Java 語(yǔ)言各版本的組件、可選包和擴(kuò)展包的部分列表(也就是組成這個(gè)平臺(tái)的復(fù)雜部件),并給出了簡(jiǎn)短描述和參考資料鏈接,用以說(shuō)明它在 Java 開(kāi)發(fā)領(lǐng)域中的作用。注意下面許多參考資料都可以在各版本中使用。
J2SE 中的技術(shù):
Java Access Bridge 用于 Microsoft Windows,它起到了網(wǎng)橋的作用,允許基于 Windows 的輔助技術(shù)與 Java Accessibility API 進(jìn)行交互(請(qǐng)參閱“為可訪(fǎng)問(wèn)性編碼”。)
JavaBeans Component Architecture 是平臺(tái)獨(dú)立的規(guī)范,它為 Java 平臺(tái)定義了一套標(biāo)準(zhǔn)組件軟件 API。(請(qǐng)參閱“Reflecting, introspecting, and customizing JavaBeans”。)
Javadoc 是一種工具,用于從源代碼的 doc 注釋中生成 HTML 格式的 API 文檔。(請(qǐng)參閱“Java 理論和實(shí)踐:我必須對(duì)那些內(nèi)容進(jìn)行文檔編制嗎?”。)
Java Foundation Classes (Swing) (JFC) 是 Java 類(lèi)庫(kù)的集合,它支持為基于 Java 的客戶(hù)機(jī)應(yīng)用程序構(gòu)建 GUI 和圖形功能。(請(qǐng)參閱“Java 2 用戶(hù)界面”。)
Java Platform Debugger Architecture (JPDA) 是 Java 2 的調(diào)試支持基礎(chǔ)設(shè)施。JPDA 包括三層 API:
JDI (Java Debug Interface)是一種支持遠(yuǎn)程調(diào)試的高級(jí)別編程語(yǔ)言接口。
JDWP (Java Debug Wire Protocol) 定義在調(diào)試過(guò)程和調(diào)試器前端之間傳輸?shù)男畔⒑驼?qǐng)求的格式。
JVMDI (Java Virtual Machine Debug Interface) 是低級(jí)別本地接口,定義了調(diào)試時(shí) JVM 必須提供的服務(wù)。
(請(qǐng)參閱“ 軟件開(kāi)發(fā)的未來(lái) ”。)
Java 2D API 是用于高級(jí) 2D 圖形和成像(為圖像合成和 alpha 通道圖像提供廣泛支持)的類(lèi)集合,是提供正確的色彩空間定義和轉(zhuǎn)換的類(lèi)集合,是面向顯示的成像操作符的集合。(請(qǐng)參閱教程“Java 2D簡(jiǎn)介”。)
Java Web Start 使您可以通過(guò)單擊而無(wú)需經(jīng)歷安裝過(guò)程來(lái)下載和啟動(dòng)功能完善的應(yīng)用程序(如電子表格),從而簡(jiǎn)化 Java 應(yīng)用程序的部署。(請(qǐng)參閱“Java Web Start”。)
Java Database Connectivity (JDBC) 是一種 API,使您可以從 Java 內(nèi)訪(fǎng)問(wèn)大多數(shù)表格式數(shù)據(jù)源,它提供了大多數(shù) SQL 數(shù)據(jù)庫(kù)的跨 DBMS 連通性,以及對(duì)其他表格式數(shù)據(jù)源的訪(fǎng)問(wèn)(如電子表格或平面文件)。(請(qǐng)參閱“JDBC 3.0 有什么新特性”。)
Remote Method Invocation (RMI) 提供引導(dǎo)命名服務(wù),不會(huì)改變類(lèi)型,并使用對(duì)象序列化使編程人員能夠創(chuàng)建基于 Java 技術(shù)的分布式應(yīng)用程序,在該應(yīng)用程序中,可以從不同主機(jī)上的其他 Java 虛擬機(jī)上調(diào)用遠(yuǎn)程 Java 對(duì)象的方法。(請(qǐng)參閱教程“分布式對(duì)象 101-使用RMI和CORBA ”。)
Java Advanced Imaging (JAI) 是一種 API,提供了面向?qū)ο蟮慕涌诘募希@些接口支持簡(jiǎn)單的高級(jí)編程模型,使得開(kāi)發(fā)人員可以很容易地操縱圖像。(請(qǐng)參閱“利用 JSP 代碼管理您的圖像”。)
Java Authentication and Authorization Service (JAAS) 是一個(gè)包,它啟用服務(wù),通過(guò)實(shí)現(xiàn)標(biāo)準(zhǔn) Pluggable Authentication Module (PAM) 框架的 Java 版本,通過(guò)支持基于用戶(hù)的授權(quán),對(duì)用戶(hù)進(jìn)行驗(yàn)證和執(zhí)行訪(fǎng)問(wèn)控制。(請(qǐng)參閱教程“Java 安全性 第二部分 認(rèn)證與授權(quán)”;“擴(kuò)展 JAAS 實(shí)現(xiàn)類(lèi)實(shí)例級(jí)授權(quán)”也是很好的信息來(lái)源。)
Java Cryptography Extension (JCE) 是一個(gè)包集合,提供了加密、密鑰生成和協(xié)議以及 Message Authentication Code (MAC) 算法的框架和實(shí)現(xiàn)。它提供了對(duì)稱(chēng)、非對(duì)稱(chēng)、分組和流密碼的加密支持,并支持安全流和密封對(duì)象。(請(qǐng)參閱教程“Java 安全性第一部分 密碼學(xué)基礎(chǔ)”。)
Java Data Objects (JDO) 是持久性的基于標(biāo)準(zhǔn)接口的 Java 模型抽象,它允許編程人員直接將 Java 域模型實(shí)例存儲(chǔ)到持久存儲(chǔ)(數(shù)據(jù)庫(kù))中,可能替代直接文件輸入輸出、序列化、JDBC 和 EJB Bean Managed Persistence (BMP) 或 Container Managed Persistence (CMP) Entity Bean 等方法。(請(qǐng)參閱教程“Java 數(shù)據(jù)對(duì)象上機(jī)實(shí)踐”。)
Java Management Extensions (JMX) 提供的工具用于構(gòu)建分布式、基于 Web 的、模塊化和動(dòng)態(tài)應(yīng)用程序,以便管理和監(jiān)視設(shè)備、應(yīng)用程序和服務(wù)驅(qū)動(dòng)的網(wǎng)絡(luò)。(請(qǐng)參閱由三部分組成的“從黑箱到企業(yè),第 1 部分:管理,JMX 1.1 樣式”。)
Java Media Framework (JMF) 允許音頻、視頻和其他基于時(shí)間的媒體添加到 Java 應(yīng)用程序和 applet 中。(請(qǐng)參閱教程“Java Media Framework 基礎(chǔ)”。)
Java Naming and Directory Interface (JNDI) 是一種標(biāo)準(zhǔn)擴(kuò)展包,為企業(yè)中的多個(gè)命名和目錄服務(wù)提供具有統(tǒng)一接口的 Java 應(yīng)用程序,允許不同種類(lèi)的企業(yè)命名和目錄服務(wù)的無(wú)縫連通性。(請(qǐng)參閱“EJB 最佳實(shí)踐:工業(yè)強(qiáng)度的 JNDI 優(yōu)化”。)
Java Secure Socket Extensions (JSSE) 是啟用安全 Internet 通信的包集合,實(shí)現(xiàn) SSL (Secure Sockets Layer) 和 TLS (Transport Layer Security) 協(xié)議的 Java 版本,并包括數(shù)據(jù)加密、服務(wù)器驗(yàn)證、消息完整性和可選客戶(hù)機(jī)驗(yàn)證的功能。(請(qǐng)參閱教程“將 JSSE 用于安全套接字通信”。)
Java Speech API (JSAPI) 允許 Java 應(yīng)用程序?qū)⒄Z(yǔ)音技術(shù)合并到用戶(hù)接口中。JSAPI 定義了跨平臺(tái)的 API,以支持命令和控制識(shí)別程序、聽(tīng)寫(xiě)系統(tǒng)和語(yǔ)音合成器。(請(qǐng)參閱“The Java 2 user interface”部分。)
Java 3D 是一種 API,通過(guò)提供支持簡(jiǎn)單高級(jí)編程模型的一組面向?qū)ο蟮慕涌冢_(kāi)發(fā)人員可以使用它容易地將可伸縮的平臺(tái)獨(dú)立的 3D 圖形合并到 Java 應(yīng)用程序中。(請(qǐng)參閱教程“Java 3D 探奇 ”。)
J2EE 中的技術(shù):
Java API for XML Processing (JAXP) 通過(guò)使應(yīng)用程序解析和轉(zhuǎn)換不依賴(lài)特定 XML 處理實(shí)現(xiàn)的 XML 文檔,通過(guò)使開(kāi)發(fā)人員可以靈活地在 XML 處理器程序之間進(jìn)行交換,而無(wú)需更改應(yīng)用程序代碼,從而支持使用 DOM、SAX 和 XSLT 處理 XML 文檔。(請(qǐng)參閱“使用 Java 編程利用在線(xiàn) XML 數(shù)據(jù)”。)
Java API for XML Registries (JAXR) 為訪(fǎng)問(wèn)不同種類(lèi)的 XML 注冊(cè)中心提供了統(tǒng)一和標(biāo)準(zhǔn)的 API (用于構(gòu)建、部署和發(fā)現(xiàn) Web 服務(wù)的可用基礎(chǔ)設(shè)施)。(請(qǐng)參閱 Java 技術(shù)標(biāo)準(zhǔn)。)
Java API for XML-based RPC (JAX-RPC) 使開(kāi)發(fā)人員可以開(kāi)發(fā)基于 SOAP 的可互操作的和可移植的 Web 服務(wù)。(請(qǐng)參閱 Java 技術(shù)標(biāo)準(zhǔn)。)
SOAP with Attachments API for Java (SAAJ) 使開(kāi)發(fā)人員可以生產(chǎn)和消費(fèi)符合 SOAP 1.1 規(guī)范和 SOAP with Attachments 注解的消息。(從“使用SAAJ發(fā)送和接收SOAP消息”開(kāi)始;有關(guān) XML 技術(shù)的詳細(xì)信息,請(qǐng)參閱 developerWorks XML 專(zhuān)區(qū)。)
Common Object Request Broker Architecture (CORBA) 是異構(gòu)計(jì)算的開(kāi)放標(biāo)準(zhǔn),通過(guò)提供分布式對(duì)象框架、支持該框架的服務(wù)以及與其他語(yǔ)言的互操作性,該標(biāo)準(zhǔn)對(duì) Java 進(jìn)行了補(bǔ)充。(請(qǐng)參閱教程“使用RMI和CORBA ”;“企業(yè)中的 RMI-IIOP”也是很好的信息來(lái)源)。
ECperf 是用于度量 Web 商務(wù)系統(tǒng)的性能和可伸縮性的基準(zhǔn)。它包括:組成應(yīng)用程序的 EJB 組件;使用 JSP 進(jìn)行單一用戶(hù)/交互測(cè)試的 Web 客戶(hù)機(jī);模式腳本和加載程序;makefile 和部署描述符;用于實(shí)現(xiàn)運(yùn)行規(guī)則和模擬客戶(hù)機(jī)加載的驅(qū)動(dòng)程序。(請(qǐng)參閱 Java 技術(shù)標(biāo)準(zhǔn)。)
Enterprise JavaBeans (EJB) 是一種技術(shù),通過(guò)提供對(duì)事務(wù)、安全性、數(shù)據(jù)庫(kù)連通性等服務(wù)的支持,它使用組件模型來(lái)簡(jiǎn)化中間件應(yīng)用程序的部署。(請(qǐng)參閱介紹該技術(shù)的教程“Enterprise JavaBean 基礎(chǔ)”;另請(qǐng)參閱系列文章 EJB 最佳實(shí)踐。)
Java Authorization Contract for Containers (Java ACC) 是一種規(guī)范,它定義了容器使用的授權(quán)提供者的安裝和配置。Java ACC 定義了提供者必須使用的接口,從而允許容器部署工具創(chuàng)建和管理與角色相對(duì)應(yīng)的權(quán)限集合。(請(qǐng)參閱教程“Developing accessible GUIs with Swing”。)
JavaMail 是一種 API,它提供了模擬郵件系統(tǒng)的抽象類(lèi)的集合。(請(qǐng)參閱教程“ JavaMail API 基礎(chǔ)”。)
Java Message Service (JMS) 是一種用來(lái)添加提供者框架的 API。通過(guò)定義所有兼容 JMS 技術(shù)的消息系統(tǒng)所支持的消息概念和編程策略的公共集合,該框架為 Java 平臺(tái)啟用了可移植的、基于消息的應(yīng)用程序的部署。(請(qǐng)參閱“實(shí)現(xiàn)獨(dú)立于供應(yīng)商的 JMS 解決方案”。)
JavaServer Faces 提供了一種編程模型,通過(guò)匯集頁(yè)面中可重用的 UI 組件,將這些組件連接到應(yīng)用程序數(shù)據(jù)源以及將客戶(hù)機(jī)生成的事件寫(xiě)入服務(wù)器端事件處理程序,該模型有助于開(kāi)發(fā)人員開(kāi)發(fā) Web 應(yīng)用程序。(請(qǐng)參閱“JSP pages, evolving and contributing to Web services”。)
JavaServer Pages (JSP) 使 Web 開(kāi)發(fā)人員可以使用單獨(dú)的用戶(hù)界面和內(nèi)容生成功能,快速地進(jìn)行開(kāi)發(fā)和輕松地維護(hù)動(dòng)態(tài)的、平臺(tái)獨(dú)立的 Web 頁(yè)面,這樣設(shè)計(jì)人員就可以更改頁(yè)面布局,而無(wú)需改變動(dòng)態(tài)內(nèi)容。該技術(shù)使用類(lèi)似于 XML 的標(biāo)簽,這些標(biāo)簽封裝了用于生成頁(yè)面內(nèi)容的邏輯。(請(qǐng)參閱教程“JSP 技術(shù)入門(mén) ”;另請(qǐng)參閱系列文章 JSP 最佳實(shí)踐。)
Java Servlets 是一種擴(kuò)展和增強(qiáng) Web 服務(wù)器功能的 Java 方式。要做到這一點(diǎn),應(yīng)該為構(gòu)建基于 Web 的應(yīng)用程序提供基于組件的平臺(tái)獨(dú)立的方法,而不會(huì)出現(xiàn) CGI 程序的性能限制。(developerWorks 中有許多關(guān)于 servlet 的信息。“創(chuàng)建 Java HTTP Servlet”和“構(gòu)建帶會(huì)話(huà)跟蹤的 Servlet”這兩篇入門(mén)教程應(yīng)該是最好的起點(diǎn)。)
J2EE Connector Architecture 定義了一種標(biāo)準(zhǔn)體系結(jié)構(gòu),通過(guò)定義一組可伸縮的、安全的事務(wù)性機(jī)制,允許 EIS 供應(yīng)商提供插入到應(yīng)用服務(wù)器中的標(biāo)準(zhǔn)資源適配器,該體系結(jié)構(gòu)用于將 J2EE 平臺(tái)連接到異構(gòu)企業(yè)信息系統(tǒng)(Enterprise Information Systems, EIS)。(請(qǐng)參閱教程“J2EE Connector Architecture 介紹”。)
J2EE Management Specification (JMX) 定義了 J2EE 平臺(tái)的管理信息模型。該模型設(shè)計(jì)用于與許多管理系統(tǒng)和協(xié)議互操作,包括到 Common Information Model (CIM)、SNMP Management Information Base (MIB)的模型的標(biāo)準(zhǔn)映射,以及通過(guò)服務(wù)器駐留 EJB 組件(J2EE Management EJB Component,MEJB)到 Java 對(duì)象模型的模型的標(biāo)準(zhǔn)映射。(請(qǐng)參閱“從黑箱到企業(yè),第 1 部分:管理,JMX 1.1 樣式”。)
Java Transaction API (JTA) 是高級(jí)的獨(dú)立于實(shí)現(xiàn)和協(xié)議的 API,它允許應(yīng)用程序和應(yīng)用程序服務(wù)器訪(fǎng)問(wèn)事務(wù)。Java Transaction Service (JTS) 指定 Transaction Manager 的實(shí)現(xiàn), Transaction Manager 支持 JTA,并在低于 API 的級(jí)別上實(shí)現(xiàn) OMG Object Transaction Service (OTS) 1.1 規(guī)范的 Java 映射。JTS 使用 Internet Inter-ORB Protocol (IIOP) 傳輸事務(wù)。(請(qǐng)參閱“理解 JTS ― 平衡安全性和性能 ”。)
J2ME 中的技術(shù):
Connected Limited Device Configuration (CLDC) 是組成資源受限移動(dòng)信息設(shè)備的 Java 運(yùn)行時(shí)環(huán)境的兩個(gè)配置之一。CLDC 提供了最基本的庫(kù)集合和虛擬機(jī)功能,在包含 K 虛擬機(jī)(KVM)的 J2ME 環(huán)境的每個(gè)實(shí)現(xiàn)中,這些都是必須存在的。(請(qǐng)參閱“Know no limits: Approaches to mobile device constraints”)
Mobile Information Device Profile (MIDP) 是組成資源受限移動(dòng)信息設(shè)備的 Java 運(yùn)行環(huán)境的兩個(gè)配置之一。MIDP 提供核心應(yīng)用程序功能,包括用戶(hù)界面、網(wǎng)絡(luò)連通性、本地?cái)?shù)據(jù)存儲(chǔ)和應(yīng)用程序生命周期管理。(請(qǐng)參閱教程“Implementing Push technology with J2ME and MIDP”。)
Connected Device Configuration (CDC) 是一種基于標(biāo)準(zhǔn)的框架,用于構(gòu)建和提供可在許多網(wǎng)絡(luò)連接消費(fèi)者和嵌入式設(shè)備之間共享的應(yīng)用程序。(請(qǐng)參閱“Securing wireless J2ME”。)
developerWorks Wireless technology 專(zhuān)區(qū)包含了 J2ME 相關(guān)技術(shù)的多篇文章和教程。
Java 網(wǎng)絡(luò)技術(shù):
JAIN APIs 是一組基于 Java 的 API,用于快速開(kāi)發(fā)下一代電信產(chǎn)品和服務(wù)。(請(qǐng)參閱 Java 技術(shù)標(biāo)準(zhǔn)。)
Java Metadata Interface (JMI) 是實(shí)現(xiàn)動(dòng)態(tài)的、平臺(tái)獨(dú)立的基礎(chǔ)設(shè)施的規(guī)范,它允許進(jìn)行元數(shù)據(jù)的創(chuàng)建、存儲(chǔ)、訪(fǎng)問(wèn)、發(fā)現(xiàn)和交換。該規(guī)范基于 Object Management Group (OMG) 的 Meta Object Facility (MOF) 規(guī)范,由一組使用統(tǒng)一建模語(yǔ)言(Unified Modeling Language,UML)描述的基本建模工件組成。(請(qǐng)參閱 Java 技術(shù)標(biāo)準(zhǔn)。)