持類似C語言那樣的程序導向的程式設計技術。Java支援靜態和動態風格的程式碼繼承及重用。單從物件導向的特性來看,Java類似於SmallTalk,但其它特性、尤其是適用於分散式計算環境的特性遠遠超越了SmallTalk。
1。2。3分散式
Java包括一個支援HTTP和FTP等基於TCP/IP協議的子庫。因此,Java應用程式可憑藉URL開啟並訪問網路上的物件,其訪問方式與訪問本地檔案系統幾乎完全相同。為分佈環境尤其是Internet提?copy;動態內容無疑是一項非常宏偉的任務,但Java的語法特性卻使我們很容易地實現這專案標。
1。2。4健壯
Java致力於檢查程式在編譯和執行時的錯誤。型別檢查幫助檢查出許多開發早期出現的錯誤。Java自已操縱記憶體減少了記憶體出錯的可能性。Java還實現了真陣列,避免了覆蓋資料的可能。這項功能特徵大大縮短了開發Java應用程式的週期。Java提供Null指標檢測陣列邊界檢測異常出口位元組程式碼校驗
1。2。5結構中立
另外,為了建立Java作為網路的一個整體,Java將它的程式編譯成一種結構中立的中間檔案格式。只要有Java執行系統的機器都能執行這種中間程式碼。現在,Java執行系統有Solaris2。4(SPARC);Win32系統(Windows95和WindowsNT)等。Java源程式被編譯成一種高層次的與機器無關的byte…code格式語言,這種語言被設計在虛擬機器上執行,由機器相關的執行偵錯程式實現執行。
1。2。6安全
Java的安全性可從兩個方面得到保證。一方面,在Java語言裡,象指標和釋放記憶體等C++功能被刪除,避免了非法記憶體操作。另一方面,當Java用來建立瀏覽器時,語言功能和一些瀏覽器本身提供的功能結合起來,使它更安全。Java語言在你的機器上執行前,要經過很多次的測試。它經過程式碼校驗,檢查程式碼段的格式,檢測指標操作,物件操作是否過分以及試圖改變一個物件的型別。
1。2。6。1Byte…code校驗
如果byte…code透過程式碼校驗,沒有返回錯誤,我們可知道:程式碼沒有堆疊上溢位和下溢位所有操作程式碼引數型別都是正確的沒有發生非法資料轉換,如將整數轉換成指標。訪問物件操作是合法的
1。2。6。2類裝載
ClassLoader透過將本機類與網路資源類的名稱分開,來保持安全性。因為調入類時總要經過檢查,這樣避免了特洛伊木馬現象的出現。從網路上下載的類被調進一個與源相關的私有的名字域。當一個私有類訪問另一個類時,build…in(本機類)首先被檢查,然後檢查相關的類。這樣就避免了破壞本機類情況的出現。
1。2。7可移植的
同體繫結構無關的特性使得Java應用程式可以在配備了Java直譯器和執行環境的任何計算機系統上執行,這成為Java應用軟體便於移植的良好基礎。但僅僅如此還不夠。如果基本資料型別設計依賴於具體實現,也將為程式的移植帶來很大不便。例如在Windows3。1中整數(Integer)為16bits,在Windows95中整數為32bits,在DECAlpha中整數為64bits,在Intel486中為32bits。透過定義獨立於平臺的基本資料型別及其運算,Java資料得以在任何硬體平臺上保持一致。Java語言的基本資料型別及其表示方式如下:byte8…bit二進位制補碼short16…bit二進位制補碼int32…bit二進位制補碼long64…bit二進位制補碼float32…bitIEEE754浮點數double32…bitIEEE754浮點數char16…bitUnicode字元。
在任何Java直譯器中,資料型別都是依據以上標準具體實現的。因為幾乎目前使用的所有CPU都能支援以上資料型別、8~64位整數格式的補碼運算和單/雙精度浮點運算。Java編譯器本身就是用Java語言編寫的。Java運算系統的編制依據POSIX方便移植的限制,用ANSIC語言寫成。Java語言規範中也沒有任何”同具體實現相關”的內容。
1。2。8解釋的
Java直譯器(執行系統)