當前位置:才華齋>計算機>java語言>

Java語言的8個特性

java語言 閱讀(3.05W)

Java程式設計具有可移植性和安全性特點,這是Java語言最明顯的特點。下面是關於Java語言的8個特性,歡迎閱讀!

Java語言的8個特性

簡 單

Java設計目的是讓專業程式設計師覺得既易學又好用。假設你有程式設計經歷,你將不覺得Java難掌握。如果你已經理解面向物件程式設計的基本概念,學習Java將更容易。如果你是一個經驗豐富的C++程式設計師,那就最好了,學習Java簡直不費吹灰之力。因為Java承C/C++語法和許多C++面向物件的特性,大多數程式設計師在學習Java時都不會覺得太難。另外,C++中許多容易混淆的概念,或者被Java棄之不用了,或者以一種更清楚、更易理解的方式實現。

除了和C/C++類似以外,Java的另外一個屬性也使它更容易學習:設計人員努力使Java中不出現顯得讓人吃驚的特性。在Java中,很少明確地告訴你如何才能完成一項特定的任務。

面向物件

儘管受到其前輩的影響,但Java沒被設計成相容其他語言原始碼的程式。這允許Java開發組自由地從零開始。這樣做的一個結果是,Java語言可以更直接、更易用、更實際的接近物件。通過對近幾十年面向物件軟體優點的借鑑,Java設法在純進化論者的“任何事物都是一個物件”和實用主義者的“不討論物件不物件”的論點之間找到了平衡。Java的物件模型既簡單又容易擴充套件,對於簡單資料型別,例如整數,它保持了高效能,但不是物件。

健 壯

全球資訊網上多平臺的環境使得它對程式有特別的要求,因為程式必須在許多系統上可靠地執行。這樣,在設計Java時,建立健壯的程式被放到了高度優先考慮的地位。為了獲得可靠性,Java在一些關鍵的地方限制你,強迫你在程式開發過程中及早發現錯誤。同時,Java使你不必擔心引起程式設計錯誤的許多最常見的問題。因為Java是一種嚴格的型別語言,它不但在編譯時檢查程式碼,而且在執行時也檢查程式碼。事實上,在執行時經常碰到的難以重現的、難以跟蹤的許多錯誤在Java中幾乎是不可能產生的。要知道,使程式在不同的執行環境中以可預見的方式執行是Java的關鍵特性。

為更好理解Java是如何具有健壯性的,讓我們考慮使程式失敗的兩個主要原因:記憶體管理錯誤和誤操作引起的異常情況(也就是執行時錯誤)。在傳統的程式設計環境下,記憶體管理是一項困難、乏味的任務。例如,在C/C++中,程式設計師必須手工地分配並且釋放所有的動態記憶體。這有時會導致問題,因為程式設計師可能忘記釋放原來分配的記憶體,或者釋放了其他部分程式正在使用的記憶體。Java通過替你管理記憶體分配和釋放,可以從根本上消除這些問題(事實上,釋放記憶體是完全自動的,因為Java為閒置的物件提供記憶體垃圾自動收集)。在傳統的環境下,異常情況可能經常由“被零除”或“檔案未找到”這樣的情況引起,而我們又必須用既繁多又難以理解的一大堆指令來對它們進行管理。Java通過提供面向物件的異常處理機制來解決這個問題。一個寫得很好的Java程式,所有的執行時錯誤都可以並且應該被你的程式自己進行管理。

多執行緒

設計Java的目標之一是為了滿足人們對建立互動式網上程式的`需要。為此,Java支援多執行緒程式設計,因而你用Java編寫的應用程式可以同時執行多個任務。Java執行時系統在多執行緒同步方面具有成熟的解決方案,這使你能夠創建出執行平穩的互動式系統。Java的多執行緒機制非常好用,因而你只需關注程式細節的實現,不用擔心後臺的多工系統。

結構中立

Java設計者考慮的一個主要問題是程式程式碼的永續性和可移植性。程式設計師面臨的一個主要問題是,不能保證今天編寫的程式明天能否在同一臺機器上順利執行。作業系統升級、處理器升級以及核心系統資源的變化,都可能導致程式無法繼續執行。Java設計者對這個問題做過多種嘗試,Java虛擬機器(JVM)就是試圖解決這個問題的。他們的目標是“只要寫一次程式,在任何地方、任何時間該程式永遠都能執行”。在很大程度上,Java實現了這個目標。

解釋性和高效能

前面已提到,通過把程式編譯為Java位元組碼這樣一箇中間過程,Java可以產生跨平臺執行的程式。位元組碼可以在提供Java虛擬機器(JVM)的任何一種系統上被解釋執行。早先的許多嘗試解決跨平臺的方案對效能要求都很高。其他解釋執行的語言系統,如BASIC,Tcl,PERL都有無法克服的效能缺陷。然而,Java卻可以在非常低檔的CPU上順利執行。前面已解釋過,Java確實是一種解釋性語言,Java的位元組碼經過仔細設計,因而很容易便能使用JIT編譯技術將位元組碼直接轉換成高效能的本機程式碼。Java執行時系統在提供這個特性的同時仍具有平臺 獨立性,因而“高效且跨平臺”對Java來說不再矛盾。

分散式

Java為Internet的分散式環境而設計,因為它處理TCP/IP協議。事實上,通過URL地址存取資源與直接存取一個檔案的差別是不太大的。Java原來的版本(Oak)包括了內建的地址空格訊息傳遞(intra-address-space)特性。這允許位於兩臺不同的計算機上的物件可以遠端地執行過程。Java最近釋出了叫做遠端方法呼叫(RemoteMethodInvocation,RMI)的軟體包,這個特性使客戶機/伺服器程式設計達到了無與倫比的抽象級。

動 態

Java程式帶有多種的執行時型別資訊,用於在執行時校驗和解決物件訪問問題。這使得在一種安全、有效的方式下動態地連線程式碼成為可能,對小應用程式環境的健壯性也十分重要,因為在執行時系統中,位元組碼內的小段程式可以動態地被更新。