1. 程式人生 > >Java基礎——java的優點以及與C++的不同

Java基礎——java的優點以及與C++的不同

1. Java的優點

Sun Microsystems公司對Java語言的描述:"Java is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral,  portable, high-performance, multithreaded, and dynamic language"。

具體來說,java具有以下幾個優點:

(1)Java為純面嚮物件語言。

所有程式碼(包括函式、變數等)必須在類中實現,除基本資料型別以外,所有型別都是類。而C++兼具面向過程和麵向物件程式設計的特點。

(2)平臺無關性。“一次編譯,到處執行”

Java為解釋型語言,編譯器把Java程式碼編譯成位元組碼,然後在Java虛擬機器上解釋執行,具有很好的可移植性。

(3)Java提供了很多內建的類庫,簡化開發。

(4)Java提供了對Web應用程式的開發。

(5)具有較好的安全性和健壯性

Java語言提供了一個防止惡意程式碼攻擊的安全機制(陣列邊界檢測和Bytecode校驗等),增強了程式的安全性。

Java的強型別機制、垃圾回收器、異常處理和安全檢查機制保證了健壯性。

(6)去除了C++語言中難以理解、容易混淆的特性,如指標。

2. Java與C++的異同

同:Java和C++都是面嚮物件語言,都使用了面向物件思想(例如封裝、繼承、多型等)

異:(1)Java是解釋型語言,由編譯器編譯成位元組碼檔案,再由虛擬機器解釋執行。

               C++是編譯型語言,原始碼經編譯和連結生成可執行的二進位制程式碼。               

(2)Java為純面嚮物件語言,所有程式碼(包括函式、變數等)必須在類中實現,除基本資料型別以外,所有型別都是類。Java語言中不存在全域性變數或全域性函式,即不能在所有類之外定義全域性變數,只能通過在一個類中定義public static 的變數來實現一個全域性變數。

C++兼具面向過程和麵向物件程式設計的特點。可以定義全域性變數和全域性函式。

(3)Java語言不支援多重繼承,但Java引入了介面,可以同時實現多個介面,來實現與C++多重繼承類似的目的。Java中的介面是支援多繼承的。

(4)Java提供了垃圾回收器來實現垃圾的自動回收。C++語言中需要開發人員去管理對記憶體的分配。

(5)Java語言沒有指標的概念

(6)Java不支援運算子過載,而C++支援。

(7)Java不支援自動強制型別轉換,必須顯示地強制型別轉換。而C++支援自動強制型別轉換,這會導致程式的不安全。

(8)Java不提供goto語句,但保留了goto關鍵字。而C++支援goto語句。

(9)Java沒有前處理器。不支援預處理功能(包括標頭檔案、巨集定義等),但它提供的import機制與C++中的預處理功能類似。

(10)Java具有平臺無關性,即對每種資料型別都分配固定長度,而C++同種資料型別在不同的平臺上會分配不同的位元組數。