1. 程式人生 > 程式設計 >java的主要特性學習總結

java的主要特性學習總結

Java語言是簡單的:

Java語言的語法與C語言和C++語言很接近,使得大多數程式設計師很容易學習和使用。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符過載、多繼承、自動的強制型別轉換。特別地,Java語言不使用指標,而是引用。並提供了自動的廢料收集,使得程式設計師不必為記憶體管理而擔憂。

Java語言是面向物件的:

Java語言提供類、介面和繼承等面向物件的特性,為了簡單起見,只支援類之間的單繼承,但支援介面之間的多繼承,並支援類與介面之間的實現機制(關鍵字為implements)。Java語言全面支援動態繫結,而C++語言只對虛擬函式使用動態繫結。總之,Java語言是一個純的面向物件程式設計語言。

Java語言是分散式的:

Java語言支援Internet應用的開發,在基本的Java應用程式設計介面中有一個網路應用程式設計介面(java net),它提供了用於網路應用程式設計的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠端方法啟用)機制也是開發分散式應用的重要手段。

Java語言是健壯的:

Java的強型別機制、異常處理、垃圾的自動收集等是Java程式健壯性的重要保證。對指標的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。

Java語言是安全的:

Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡意程式碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網路下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、位元組程式碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設定安全哨兵。

Java語言是體系結構中立的:

Java程式(字尾為java的檔案)在Java平臺上被編譯為體系結構中立的位元組碼格式(字尾為class的檔案),然後可以在實現這個Java平臺的任何系統中執行。這種途徑適合於異構的網路環境和軟體的分發。

Java語言是可移植的:

這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本資料型別的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的執行環境是用ANSI C實現的。

Java語言是解釋型的:

如前所述,Java程式在Java平臺上被編譯為位元組碼格式,然後可以在實現這個Java平臺的任何系統中執行。在執行時,Java平臺中的Java直譯器對這些位元組碼進行解釋執行,執行過程中需要的類在聯接階段被載入到執行環境中。

Java是高效能的:

與那些解釋型的高階指令碼語言相比,Java的確是高效能的。事實上,Java的執行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近於C++。

Java語言是多執行緒的:

在Java語言中,執行緒是一種特殊的物件,它必須由Thread類或其子(孫)類來建立。通常有兩種方法來建立執行緒:其一,使用型構為Thread(Runnable)的構造子類將一個實現了Runnable介面的物件包裝成一個執行緒,其二,從Thread類派生出子類並重寫run方法,使用該子類建立的物件即為執行緒。值得注意的是Thread類已經實現了Runnable介面,因此,任何一個執行緒均有它的run方法,而run方法中包含了執行緒所要執行的程式碼。執行緒的活動由一組方法來控制。Java語言支援多個執行緒的同時執行,並提供多執行緒之間的同步機制(關鍵字為synchronized)。

Java語言是動態的:

Java語言的設計目標之一是適應於動態變化的環境。Java程式需要的類能夠動態地被載入到執行環境,也可以通過網路來載入所需要的類。這也有利於軟體的升級。另外,Java中的類有一個執行時刻的表示,能進行執行時刻的型別檢查。

內容擴充套件:

JAVA語言主要特點

1.簡單

Java最初是為對家用電器進行整合控制而設計的一種語言,因此它必須簡單明瞭。Java語言的簡單性主要體現在以下三個方面:

1) Java的風格類似於C++,因而C++程式設計師是非常熟悉的。從某種意義上講,Java語言是C及C++語言的一個變種,因此,C++程式設計師可以很快就掌握Java程式設計技術。

2) Java摒棄了C++中容易引發程式錯誤的地方,如指標和記憶體管理。

3) Java提供了豐富的類庫。

2.面向物件

面向物件可以說是Java最重要的特性。Java語言的設計完全是面向物件的,它不支援類似C語言那樣的面向過程的程式設計技術。Java支援靜態和動態風格的程式碼繼承及重用。單從面向物件的特性來看,Java類似於Small Talk,但其它特性、尤其是適用於分散式計算環境的特性遠遠超越了Small Talk。

3.分散式

Java包括一個支援HTTP和FTP等基於TCP/IP協議的子庫。因此,Java應用程式可憑藉URL開啟並訪問網路上的物件,其訪問方式與訪問本地檔案系統幾乎完全相同。為分佈環境尤其是Internet提供的動態內容無疑是一項非常巨集偉的任務,但Java的語法特性卻使我們很容易地實現這專案標。

4.健壯

Java致力於檢查程式在編譯和執行時的錯誤。型別檢查幫助檢查出許多開發早期出現的錯誤。Java自已操縱記憶體減少了記憶體出錯的可能性。Java還實現了真陣列,避免了覆蓋資料的可能。這些功能特徵大大縮短了開發Java應用程式的週期。Java提供Null指標檢測陣列邊界檢測異常出口位元組程式碼校驗。

5.結構中立

另外,為了建立Java作為網路的一個整體,Java將它的程式編譯成一種結構中立的中間檔案格式。只要有Java執行系統的機器都能執行這種中間程式碼。現在,Java執行系統有Solaris2.4(SPARC),Win32系統(Windows95和WindowsNT)等.Java源程式被編譯成一種高層次的與機器無關的byte-code格式語言,這種語言被設計在虛擬機器上執行,由機器相關的執行偵錯程式實現執行。

6.安全

Java的安全性可從兩個方面得到保證。一方面,在Java語言裡,象指標和釋放記憶體等C++功能被刪除,避免了非法記憶體操作。另一方面,當Java用來建立瀏覽器時,語言功能和瀏覽器本身提供的功能結合起來,使它更安全。Java語言在你的機器上執行前,要經過很多次的測試。它經過程式碼校驗,檢查程式碼段的格式,檢測指標操作,物件操作是否過分以及試圖改變一個物件的型別。

7.可移植的

這句話一直是Java程式設計師們的精神指標,也是Java之所以能夠受到程式設計師們喜愛的原因之一,最大的功臣就是JVM的技術。大多數編譯器產生的目的碼只能執行在一 種CPU上(如Intel的x86系列),即使那些能支援多種CPU的編譯器也不能同時產生適合多 種CPU的目的碼。如果你需要在三種CPU( 如x86、SPARC 和MIPS)上運行同一程式,就必須編譯三次。

但JAVA編譯器就不同了。JAVA編譯器產生的目的碼(J-Code) 是針對一種並不 存在的CPU--JAVA虛擬機器(JAVA Virtual Machine),而不是某一實際的CPU。JAVA虛擬機器能掩蓋不同CPU之間的差別,使J-Code能運行於任何具有JAVA虛擬機器的機器上。

虛擬機器的概念並不AVA 所 特 有 的:加州大學幾年前就提出了PASCAL虛擬機器的概念;廣泛用於Unix伺服器的Perl指令碼也是產生與機器無關的中間程式碼用於執行。但針對Internet應用而設計的JAVA虛擬機器的特別之處在於它能產生安全的不受病毒威脅的目的碼。正是由於Internet對安全特性的特別要求才使得JVM能夠迅速被人們接受。 當今主 流的作業系統如OS/2、MacOS、Windows95/NT都已經或很快提供對J-Code的支援。

作為一種虛擬的CPU,JAVA 虛擬機器對於原始碼(Source Code) 來說是獨立的。我們不僅可以用JAVA語言來生成J-Code,也可以用Ada95來生成。事實上,已經有了針對若干種原始碼的J-Code 編譯器,包括Basic、Lisp 和Forth。原始碼一經轉換成J-Code以後,JAVA虛擬機器就能夠執行而不區分它是由哪種原始碼生成的。這樣做的結果就是CPU可移植性。 將源程式編譯為J-Code的好處在於可運行於各種機器上,而缺點是它不如本機程式碼執行的速度快。

同體繫結構無關的特性使得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語言規範中也沒有任何"同具體實現相關"的內容。

8.解釋的

Java直譯器(執行系統)能直接執行目的碼指令。連結程式通常比編譯程式所需資源少,所以程式設計師可以在建立源程式上花上更多的時間。

9.高效能

如果直譯器速度不慢,Java可以在執行時直接將目的碼翻譯成機器指令。Sun用直接直譯器一秒鐘內可呼叫300,000個過程。翻譯目的碼的速度與C/C++的效能沒什麼區別。

10.多執行緒

多執行緒功能使得在一個程式裡可同時執行多個小任務。執行緒--有時也稱小程序--是一個大程序裡分出來的小的獨立的程序。因為Java實現的多執行緒技術,所以比C和C++更鍵壯。多執行緒帶來的更大的好處是更好的互動效能和實時控制性能。當然實時控制性能還取決於系統本身(UNIX,Windows,Macintosh等),在開發難易程度和效能上都比單執行緒要好。任何用過當前瀏覽器的人,都感覺為調一副圖片而等待是一件很煩惱的事情。在Java裡,你可用一個單執行緒來調一副圖片,而你可以訪問HTML裡的其它資訊而不必等它。

11.動態

Java的動態特性是其面向物件設計方法的發展。它允許程式動態地裝入執行過程中所需要的類,這是C++語言進行面向物件程式設計所無法實現的。在C++程式設計過程中,每當在類中增加一個例項變數或一種成員函式後,引用該類的所有子類都必須重新編譯,否則將導致程式崩潰。Java從如下幾方面採取措來解決這個問題。Java編譯器不是將對例項變數和成員函式的引用編譯為數值引用,而是將符號引用資訊在位元組碼中儲存下傳遞給直譯器,再由直譯器在完成動態連線類後,將符號引用資訊轉換為數值偏移量。這樣,一個在儲存器生成的物件不在編譯過程中決定,而是延遲到執行時由直譯器確定的。這樣,對類中的變數和方法進行更新時就不至於影響現存的程式碼。解釋執行位元組碼時,這種符號資訊的查詢和轉換過程僅在一個新的名字出現時才進行一次,隨後程式碼便可以全速執行。在執行時確定引用的好處是可以使用已被更新的類,而不必擔心會影響原有的程式碼。如果程式連線了網路中另一系統中的某一類,該類的所有者也可以自由地對該類進行更新,而不會使任何引用該類的程式崩潰。Java還簡化了使用一個升級的或全新的協議的方法。如果你的系統執行Java程式時遇到了不知怎樣處理的程式,沒關係,Java能自動下載你所需要的功能程式。四.與C和C++語言的異同 Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特徵。C++安全性不好,但C和C++還是被大家所接受,所以Java設計成C++形式,讓大家很容易學習。Java去掉了C++語言的許多功能,讓Java的語言功能很精煉,並增加了一個很有用的功能,Java去掉了以下幾個C和C++功能和特徵:指標運算結構typedefs#define需要釋放記憶體全域性變數的定義這個功能都是很容易引起錯誤的地方。

12. Unicode

Java使用Unicode作為它的標準字元,這項特性使得Java的程式能在不同語言的平臺上都能撰寫和執行。簡單的說,你可以把程式中的變數、類別名稱使用中文來表示<注>,當你的程式移植到其它語言平臺時,還是可以正常的執行。Java也是目前所有計算機語言當中,唯一天生使用Unicode的語言。

到此這篇關於java的主要特性學習總結的文章就介紹到這了,更多相關java有哪些主要特性內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!