Java 技術新手入門

出處: IBM DevelopWorks

2007-4-15 14:06:00

Java 技術新手入門

developerWorks


Java 技術是什麼?
Java 技術爲什麼是重要的?
什麼是 Java 組件技術?
Java 技術與 SOA/Web 服務的關係
Java 技術與開放源碼軟件開發的關係
如何提高自己的 Java 編程技能
Java 程序員可用的 IBM 工具和產品



developerWorks Java? technology 專區包含關於 Java 的數百篇文章、教程和技巧,可以幫助軟件開發人員瞭解 Java 平臺和相關技術的大多數方面。但是,如果您正在尋找一個起點,僅僅是篩選 Web 上現有的大量參考資料就會令您暈頭轉向。developerWorks 提供這個頁面是爲了在 Java 語言的總體環境中概述 Java 技術的基本知識。它提供了 developerWorks 中相關的介紹性內容、其他教學參考資料以及 IBM 下載和產品的鏈接,可以以此爲起點對 Java 進行進一步探索。


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 語言的主要好處是,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 發展計劃的重要部分:

  • 瞭解關於 IBM 的面向服務架構(SOA) 計劃的更多信息,以及 SOA 如何幫助用戶構建複合應用程序,從而將來自多個來源的功能組合在企業中以支持橫向業務流程。

  • IBM Business Innovation and Optimization 爲戰略性調整提供一種基於組件的全面的方法。提供的解決方案基於一個靈活、可擴展、基於開放標準的軟件(包括 Java 技術)和硬件基礎結構。

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 參考資料,比如分兩部分的教程 “”。




什麼是 Java 組件技術?

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 做了精彩的概述。

 

J2EE 中的技術:

  • Enterprise JavaBeans(EJB)技術使用一個組件模型來簡化中間件應用程序的開發,它提供了對事務、安全性和數據庫連接等服務的自動支持。(參見教程 “Enterprise JavaBean 基礎”;參見 EJB 最佳實踐 系列;閱讀 “使用 EJB 3.0 Java Persistence API 設計企業應用程序”。)

  • Portlet Specification 定義了一套用於 Java 門戶計算的 API,可以解決聚合、個人化、表示和安全性方面的問題。(參見 “使用 Apache Pluto 構建和測試 JSR 168 兼容的 portlets”。)

  • JavaMail 是一個 API,提供了一套對郵件系統進行建模的抽象類。(參見教程 “JavaMail API 基礎教程”。)

  • Java Message Service(JMS)是一個 API,它爲所有與 JMS 技術兼容的消息傳遞系統定義一套通用的消息概念和編程策略,從而支持開發可移植的基於消息的 Java 應用程序。(參見教程 “Java 消息服務介紹”。)

  • JavaServer Faces(JSF)提供一個編程模型,幫助開發人員將可重用 UI 組件組合在頁面中,將這些組件連接到應用程序數據源,將客戶機生成的事件連接到服務器端事件處理程序,從而輕鬆地組建 Web 應用程序。(參見 懷疑論者的 JSF 專欄和教程 “用 JavaServer Faces 進行 UI 開發”,以及 JavaServer Faces 技術專題。)

  • JavaServer Pages(JSP)允許 Web 開發人員快速地開發和輕鬆地維護動態的獨立於平臺的 Web 頁面,並將用戶界面和內容生成隔離開,這樣設計人員就能夠修改頁面佈局而不必修改動態內容。這種技術使用類似 XML 的標記來封裝爲頁面生成內容的邏輯。(參見教程 “JSP 技術入門”;還請參考 JSP 最佳實踐 系列,以及 JavaServer Pages 技術專題。)

  • Standard Tag Library for JavaServer Pages(JSTL)是一個定製標記集合,它以一種標準化的格式啓用許多常見的 Web 站點功能。(參見 “使用 JSTL 來更新 JSP 頁面” 和分四部分的文章系列 “JSTL 入門”。)

  • Java Servlets 提供一種基於組件的獨立於平臺的方法,可以構建基於 Web 的應用程序,同時避免 CGI 程序的性能限制,從而擴展並增強 Web 服務器的功能。(教程 “Java Servlet 技術簡介” 可以幫助您瞭解 Java Servlets。)

  • J2EE Connector Architecture(JCA)爲將 J2EE 平臺連接到各種結構的 Enterprise Information Systems(EIS)定義了一個標準的體系結構,它定義了一套可伸縮的安全的事務性機制,使 EIS 廠商能夠提供標準的資源適配器,可以將這些資源適配器插入應用服務器中。(參見 “理解 JCA 事務”、“爲 EAI 選擇 JCA、JMS 或 Web 服務”、“Integrate remote enterprise information systems with JCA, JMS, and Web services” 和教程 “Introduction to the J2EE Connector Architecture”。)

  • J2EE Management Specification(JMX)爲 J2EE 平臺定義了一個信息管理模型。根據其設計,J2EE Management Model 可與多種管理系統和協議進行互操作;包含模型到 Common Information Model(CIM)的標準映射,CIM 是一個 SNMP Management Information Base(MIB);還可以通過一個駐留在服務器上的 EJB 組件 —— J2EE Management EJB Component(MEJB) —— 映射到 Java 對象模型。(參見 “從黑箱到企業,第 1 部分: 管理,JMX 1.1 樣式”。)

  • Java Transaction API(JTA)是一個獨立於實現和協議的高級 API,它使應用程序和應用服務器可以訪問事務。Java Transaction Service(JTS)指定了 Transaction Manager 的實現,它支持 JTA 並在這個 API 之下的層上實現 OMG Object Transaction Service(OTS) 1.1 規範的 Java 映射。JTS 使用 Internet Inter-ORB Protocol(IIOP)傳播事務。(參見 “Understanding JTS -- An introduction to transactions”。)

J2ME 中的技術:




Java 技術與 SOA/Web 服務的關係

面向服務體系結構是一種組件模型,它通過服務之間定義良好的接口和合約將應用程序的功能性單元(稱爲服務,或 Web 服務)聯繫在一起。定義接口的方式獨立於硬件、操作系統和用來實現服務的編程語言,這使在不同系統上構造的服務可以以統一的通用的方式相互進行交互。SOA 是一種鬆散耦合的模型,可以替代更傳統的緊密耦合的面向對象模型。

產生的 Web 服務可以用 XML 定義業務規則和過程,使軟件應用程序可以按照一種獨立於平臺和編程語言的方式進行通信。XML 技術使數據具有可移植性並促進消息的創建,而 Java 技術使代碼具有可移植性。XML 和 Java 語言能夠很好地結合在一起,這使它們成爲構建和部署 Web 服務的理想組合。

可以通過以下參考資料瞭解關於 SOA 的更多信息:




Java 技術與開放源碼軟件開發的關係

大量的 開放源碼項目 通過庫、工具、框架、應用程序和應用服務器對 Java 技術進行擴展,從而幫助程序員利用這種強大的技術。許多開放源碼技術已經結合到了 Java 平臺本身之中,還有一些技術受到了 Java 開發人員的喜愛(在某些情況下甚至已經成爲事實標準)。

可以通過以下參考資料進一步瞭解 Java 編程方面的開放源碼技術:




如何提高自己的 Java 編程技能

可以按照兩條路線提高自己的技能:參加一個課程(爲了認證或者只是爲了學習)或自學(當然,還要通過編寫代碼進行實踐)。除了能夠從有經驗的開發人員那裏獲得知識之外,課程或認證路線還可以向老闆有力地證明您具備他們需要的技能。使用各種參考資料進行自學,可以在 Java 技術的各個方面提高您的技能。以下參考資料對於這兩種學習方式都有幫助:

  • 教程和文章
  • 圖書和 Web 站點:
  • 遊戲
  • IBM 技術培訓
    • 可以在 IBM Global Services 提供的各種在線、課堂和基於多媒體的 Java 課程 中進行選擇。

  • 認證培訓
    • 如果您正在考慮對自己的 Java 技能進行認證,那麼要參加幾個考試。爲了幫助您準備考試,我們在 Whizlabs 的朋友編寫了分四部分的教程 “Java 認證成功之路”,這些教程討論了 Sun Certified Java Programmer(SCJP)1.4、Sun Certified Web Component Developer(SCWCD)、Sun Certified Business Component Developer(SCBCD)和 Sun Certified Enterprise Architect(SCEA)。對於 SCJP exam for Java SE 5 的更新,請閱讀文章 “Are you SCJP 5 certified?”。“Preparing for the Mobile Application Developer Certification” 幫助您準備 Sun Certified Mobile Application Developer(SCMAD)。

    • IBM 在 WebSphere 開發(用於企業 Java 應用程序)、IBM Rational 軟件、DB2、XML 和 SOA 等相關技術領域提供 專業人員認證

  • 論壇
    • 要想以更加交互式的方法學習 Java 語言,請參與 Java discussion forums,這裏聚集了著名的專家,他們在運用 Java 相關技術方面有着豐富的實際經驗。




Java 程序員可用的 IBM 工具和產品

作爲主要的創新者之一,IBM 處於 Java 技術的最前沿。本節介紹 IBM 爲 Java 開發人員提供的工具和產品。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章