Java語言的特色以及Java與C/C++的異同

Java語言的特色

1. Java爲純面向對象的語言,可以直接反應現實生活中的對象,容易理解,編程更容易。java

2.跨平臺,java是解釋性語言,編譯器會把java代碼變成中間代碼,而後在JVM上解釋執行,因爲中間代碼和平臺無關所以,java語言能夠跨平臺執行,具備很好的移植性。數據庫

3.Java提供了不少內置的類庫,簡化了開發人員的程序設計工做,縮短了項目的開發時間。例如,Java語言提供了對多線程的支持,提供了對網絡通訊的支持,最重要的是提供了垃圾回收器,這使得開發人員從對內存的管理中解脫出來。編程

4.提供了對Web應用開發的支持。例如,Applet,Servlet和JSP能夠用來開發Web程序;Socket、RMI能夠用來開發分佈式應用程序的類庫。數組

5.具備很好的安全性和健壯性。Java提供了一個防止惡意代碼攻擊的安全機制(數組邊界檢測和Bytecode校驗等)。Java的強類型機制、垃圾回收器、異常處理和安全檢查機制使得java語言編寫的程序有很好的健壯性。安全

6.去除了C++語言中難以理解、容易混淆的特性,例如頭文件、指針、結構、單元、運算符重載、虛擬基礎類、多重繼承等,使得程序更加嚴謹、簡潔。網絡

 

Java與C/C++有什麼異同

相同點:都是面嚮對象語言;都用了面向對象思想(封裝、繼承、多臺等);都有很好的可重用性。多線程

不一樣點:分佈式

1.Java爲解釋性語言,其運行過程爲:程序源代碼通過Java編譯器編譯成字節碼,而後由JVM解釋執行。而C/C++爲編譯型語言,源代碼通過編譯和連接後生成可執行的二進制代碼。所以,Java的執行速度比C/C++慢,可是Java可以跨平臺執行,而C/C++不能。函數

2.Java爲純面嚮對象語言,全部代碼(包括函數、變量等)必須在類中實現,除基本數據類型(包括int、float等)外,全部類型都是類。此外,Java語言中不存在全局變量或全局函數,而C++兼具面向對象和麪向過程變成的特色,能夠定義全局變量和全局函數。spa

3.與C/C++語言相比,Java語言中沒有指針的概念,這有效防止了C/C++語言中操做指針可能引發的系統問題,從而使程序變得更加安全。

4.與C++語言相比,Java語言不支持多重繼承,可是Java引入了接口的概念,能夠同時實現多個接口。因爲接口也具備多態特性,所以在Java語言中能夠經過實現多個接口來實現與C++語言中多重繼承相似的目的。

5.在C++語言中,須要開發人員去管理對內存的分配(包括申請與釋放),而Java語言提供了垃圾回收器來實現垃圾的自動回收,不須要程序顯式地管理內存的分配。在C++語言中,一般都會把釋放資源的代碼放到析構函數中,Java語言中雖然沒有析構函數,但卻引入了一個finalize()方法,當垃圾回收器將要釋放無用對象的內存時,會首先調用該對象的finalize()方法,所以,開發人員不須要關心也不須要知道對象所佔的內存空間什麼時候會被釋放。

6.C++語言支持運算符重載,而Java語言不支持運算符重載。

7.C++語言支持預處理,而Java語言沒有預處理器。Java雖然不支持預處理功能(頭文件、宏定義等),但它提供的import機制和C++中的預處理器功能相似。

8.C++支持默認函數參數,而Java不支持。

9.C++支持goto語句,而Java不提供goto語句(但Java中goto是保留關鍵字)。

10.C++支持自動強制類型轉換,這會致使程序的不安全;Java不支持自動強轉,必須由開發人員進行顯式地強制類型轉換。

11.C++中結構和聯合的全部成員均爲公有,這回致使安全性問題的發生,而Java根本就不包含結構和聯合,全部的內容都封裝在類裏面。

12.C++同一個數據類型在不一樣的平臺上會分配不一樣的字節數,Java對每種數據類型都分配固定長度,例如,int類型老是佔據32位。

13.Java提供對註釋文檔的內建支持,

14.Java包含了一些標準庫,用於完成特定的任務。例如,Java提供了用於訪問數據庫的JDBC庫,用於實現分佈式對象的RMI等標準庫。而C++則依靠一些非標準的、由其餘廠商提供的庫。

15.Java有反射機制,容許程序在運行時進行自我檢查,同時也容許對其內部的成員進行操做。C++沒有提供這樣的特性。

相關文章
相關標籤/搜索