Java介紹
Java平台由Java
虛擬機(Java Virtual Machine)和Java 套用編程接口(Application Programming Interface、簡稱API)構成。Java 套用編程接口為Java套用提供了一個獨立於作業系統的標準接口,可分為基本部分和擴展部分。在硬體或作業系統平台上安裝一個Java平台之後,Java應用程式就可運行。現在Java平台已經嵌入了幾乎所有的作業系統。這樣Java程式可以只編譯一次,就可以在各種系統中運行。Java套用編程接口已經從1.1x版發展到1.2版。目前常用的Java平台基於Java1.4,最近版本為Java1.6。
Java分為三個體系JavaSE,JavaEE,JavaME。
Java語言
1、Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數程式設計師很容易學習和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如
操作符重載、
多繼承、自動的
強制類型轉換。特別地,Java語言不使用
指針,並提供了自動的廢料收集,使得程式設計師不必為
記憶體管理而擔憂。
2、Java語言是一個
面向對象的。Java語言提供類、接口和繼承等
原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的
多繼承,並支持類與接口之間的實現機制(關鍵字為implements)。Java語言全面支持
動態綁定,而C++ 語言只對
虛函式使用動態綁定。總之,Java語言是一個純的
面向對象程式設計語言。
3、Java語言是分散式的。Java語言支持Internet套用的開發,在基本的Java套用
編程接口中有一個網路套用編程接口(javanet),它提供了用於網路套用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠程方法激活)機制也是開發
分散式套用的重要手段。
4、Java語言是健壯的。Java的強類型機制、
異常處理、廢料的自動收集等是Java程式
健壯性的重要保證。對
指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具
健壯性。
5、Java語言是安全的。Java通常被用在網路環境中,為此,Java提供了一個安全機制以防
惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網路下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、
位元組代碼檢查,並提供安全管理機制(類SecurityManager)讓Java套用設定安全哨兵。
6、Java語言是
體系結構中立的。Java程式(後綴為java的檔案)在Java平台上被編譯為
體系結構中立的
位元組碼格式(後綴為class的檔案), 然後可以在實現這個Java平台的任何系統中運行。這種途徑適合於異構的網路環境和軟體的分發。
7、Java語言是可移植的。這種可移植性來源於
體系結構中立性,另外,Java還嚴格規定了各個基本
數據類型的長度。Java系統本身也具有很強的可移植性,Java
編譯器是用Java實現的,Java的運行環境是用ANSI C實現的。
8、Java語言是解釋型的。如前所述,Java程式在Java平台上被編譯為
位元組碼格式, 然後可以在實現這個Java平台的任何系統中運行。在運行時,Java平台中的Java
解釋器對這些
位元組碼進行
解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。
9、Java是高性能的。與那些解釋型的高級
腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)
編譯器技術的發展越來越接近於C++。
10、Java語言是多執行緒的。在Java語言中,執行緒是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建執行緒:其一,使用型構為Thread(Runnable) 的
構造子將一個實現了Runnable接口的對象包裝成一個執行緒,其二,從Thread類派生出子類並重寫run方法,使用該子類創建的對象即為執行緒。值得注意的是Thread類已經實現了Runnable接口,因此,任何一個執行緒均有它的run方法,而run方法中包含了執行緒所要運行的代碼。執行緒的活動由一組方法來控制。 Java語言支持多個
執行緒的同時執行,並提供多執行緒之間的同步機制(關鍵字為synchronized)。
11、Java語言是動態的。Java語言的設計目標之一是適應於動態變化的環境。Java程式需要的類能動態地被載入到運行環境,也可以通過網路來載入所需要的類。這也有利於軟體的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。
Java語言的優良特性使得Java套用具有無比的
健壯性和可靠性,這也減少了套用系統的維護費用。Java對對象技術的全面支持和Java平台內嵌的API能縮短套用系統的開發時間並降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結構和在多平台之間傳遞信息的低成本方式。特別是Java企業套用
編程接口(Java Enterprise APIs)為企業計算及電子商務套用系統提供了有關技術和豐富的類庫。
1、JDBC(Java Database Connectivity)提供連線各種關係資料庫的統一接口。
2、EJB(Enterprise JavaBeans)使得開發者方便地創建、部署和管理跨平台的基於組件的企業套用。
3、Java RMI(Java Remote Method Invocation)用來開發分散式Java應用程式。一個Java對象的方法能被遠程Java
虛擬機調用。這樣,遠程方法激活可以發生在對等的兩端,也可以發生在
客戶端和伺服器之間,只要雙方的應用程式都是用Java寫的。
4、Java IDL(Java Interface Definition Language) 提供與CORBA(Common Object Request Broker Architecture)的無逢的
互操作性。這使得Java能集成異構的商務信息資源。
5、JNDI(Java Naming and Directory Interface)提供從Java平台到的統一的無逢的連線。這個接口禁止了企業網路所使用的各種命名和
目錄服務。
6、
JMAPI(Java Management API)為異構網路上系統、網路和服務管理的開發提供一整套豐富的對象和方法。
7、JMS(Java Message Service)提供企業訊息服務,如可靠的
訊息佇列、發布和訂閱通信、以及有關推拉(Push/Pull)技術的各個方面。
8、JTS(Java transaction Service)提供存取事務處理資源的開放標準,這些事務處理資源包括事務處理應用程式、事務處理管理及監控。
在Java技術中,值得關注的還有JavaBeans,它是一個開放的標準的組件
體系結構,它獨立於平台,但使用Java語言。一個JavaBean是一個滿足JavaBeans規範的Java類,通常定義了一個現實世界的事物或概念。一個JavaBean的主要特徵包括屬性、方法和事件。通常,在一個支持JavaBeans規範的
開發環境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可視地操作JavaBean,也可以使用JavaBean構造出新的JavaBean。JavaBean的優勢還在於Java帶來的可移植性。現在,EJB (Enterprise JavaBeans) 將JavaBean概念擴展到Java服務端組件
體系結構,這個模型支持多層的
分散式對象套用。除了JavaBeans,典型的組件
體系結構還有DCOM和CORBA,關於這些組件體系結構的深入討論超出了本書的範圍。
Java的特點
平台無關性
平台無關性是指Java能運行於不同的平台。Java引進
虛擬機 原理,並運行於虛擬機,實現不同平台的Java接口之間。使用Java編寫的程式能在世界範圍內共享。Java的
數據類型與 機器無關,Java虛擬機(Java Virtual Machine)是建立在硬體和作業系統之上,實現Java
二進制代碼的
解釋執行功能, 提供於不同平台的接口的。
安全性
Java的編程類似C++,學習過C++的讀者將很快掌握Java的精髓。Java捨棄了C++的
指針對
存儲器地址的直接操作,程式運行時,記憶體由作業系統分配,這樣可以避免病毒通過指針侵入系統。Java對程式提供了安全管理器,防止程式的非法訪問。
面向對象
Java吸取了C++面向對象的概念,將
數據封裝於類中,利用類的優點,實現了程式的簡潔性和便於維護性。類的封裝性、繼承性等有關對象的特性,使程式代碼只需一次編譯,然後通過上述特性反覆利用。程式設計師只需把主要精力用在類和接口的設計和套用上。Java提供了眾多的一般對象的類,通過繼承即可使用父類的方法。在Java中,類的繼承關係是單一的非多重的,一個子類只有一個父類,子類的父類又有一個父類。Java提供的Object類及其子類的繼承關係如同一棵倒立的樹形,根類為Object類,Object類功能強大,經常會使用到它及其它派生的子類。
分散式
Java建立在擴展TCP/IP網路平台上。
庫函式提供了用HTTP和FTP協定傳送和接受信息的方法。這使得
程式設計師使用網路上的檔案和使用本機檔案一樣容易。
健壯性
Java致力於檢查程式在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發早期出現的錯誤。Java自己操縱記憶體減少了記憶體出錯的可能性。Java還實現了
真數組,避免了覆蓋數據的可能,這些功能特徵大大提高了開發Java應用程式的周期。並且Java還提供了Null
指針檢測、
數組邊界檢測、異常出口、Byte code校驗等功能。
Java與C/C++語言
Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特徵。C++安全性不好,但C和C++被大家接受,所以Java設計成C++形式,讓大家很容易學習。
Java去掉了C++語言中的
指針運算、結構、typedefs、#define、需要釋放記憶體等功能,減少了平常出錯的50%,讓Java的語言功能很精煉。而且,因為Java很小,所以整個
解釋器只需215K的RAM,並增加了一些很有用的功能,如自動收集碎片。
Java實現了C++的基本面象對象技術並有一些增強,(為了語言簡單,刪除了一些功能)。Java處理數據方式和用對象接口處理對象數據方式一樣。
Java與Internet
我們知道,早先的www僅可以傳送文本和圖片,Java的出現實現了互動的頁面,是一次偉大的革命。
Java並不是為Internet、www而設計的,它也可以用來編寫獨立的應用程式。Java是一種
面向對象語言,Java語言類似於C++語言,所以已熟練掌握C++語言的編程人員,再學習Java語言就容易得多!Java程式需要編譯,它被放置在Internet伺服器上,當用戶訪問伺服器時,Java程式被下載到本地的用戶機上,由
瀏覽器解釋運行。實際上有兩種Java程式:一種Java應用程式是一個完整的程式,如Web瀏覽器。另一種Java
小應用程式是運行於Web瀏覽器中的一個程式。
Java程式和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程式的方法。你能從你的瀏覽器里直接播放聲音,你還能播放頁面里的動畫,Java還能告訴你的瀏覽器怎樣處理新的類型檔案。當我們能在2400 baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。
Java與電子商務
電子商務是當今的熱門話題,然而傳統的程式語言難以勝任
電子商務系統,電子商務要求程式代碼具有基本的要求:安全、可靠、同時要求能與運行於不同平台的機器的全世界客戶開展業務。Java以其強安全性、平台無關性、硬體結構無關性、語言簡潔同時
面向對象,在網路程式語言中占據無可比擬的優勢,成為實現
電子商務系統的首選語言。