當前位置:編程學習大全網 - 編程語言 - C++和JAVA語言有的相同點和不同點

C++和JAVA語言有的相同點和不同點

Java與C++都是面向對象的語言,都使用了面向對象的思想(封裝、繼承、多態),由於面向對象由許多非常好的特性(繼承、組合等),因此二者有很好的可重用性。

主要不同點:

1、Java為解釋性語言,其運行過程為:程序源代碼經過Java編譯器編譯成字節碼,然後由JVM解釋執行。而C/C++為編譯型語言,源代碼經過編譯和鏈接後生成可執行的二進制代碼,可直接執行。因此Java的執行速度比C/C++慢,但Java能夠跨平臺執行,C/C++不能。

2、Java是純面向對象語言,所有代碼(包括函數、變量)必須在類中實現,除基本數據類型(包括int、float等)外,所有類型都是類。此外,Java語言中不存在全局變量或者全局函數,而C++兼具面向過程和面向對象編程的特點,可以定義全局變量和全局函數。

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

4、與C++語言相比,Java語言不支持多重繼承,但是Java語言引入了接口的概念,可以同時實現多個接口。由於接口也有多態特性,因此Java語言中可以通過實現多個接口來實現與C++語言中多重繼承類似的目的。

5、在C++語言中,需要開發人員去管理內存的分配(包括申請和釋放),而Java語言提供了垃圾回收器來實現垃圾的自動回收,不需要程序顯示地管理內存的分配。在C++語言中,通常會把釋放資源的代碼放到析構函數中,Java語言中雖然沒有析構函數,但卻引入了壹個finalize()方法,當垃圾回收器要釋放無用對象的內存時,會首先調用該對象的finalize()方法,因此,開發人員不需要關心也不需要知道對象所占的內存空間何時被釋放。

其他不同點:

1>C++語言支持運算符重載;Java不支持運算符重載。

2>C++語言支持預處理;Java沒有預處理器,雖然不支持與處理功能(包括頭文件、宏定義等),但它提供的import機制與C++的預處理器功能類似。

3>C++支持默認函數參數;Java不支持默認函數參數。

4>C/C++支持goto語句;Java不提供goto語句,但Java中的goto是保留關鍵字。

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

6>C/C++中,結構和聯合的所有成員均為公有,這往往會導致安全性問題的發生;而Java根本就不包含結構和聯合,所有內容都封裝在類裏面。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

1>Java具有平臺無關性,即對每種數據類型都分配固定長度的空間,例如int型總是占據32位;而C/C++不然,同壹個數據類型在不同平臺上會分配不同的字節數。

2>Java提供對註釋文檔的內建支持,所以源碼文件也可以包含它們自己的文檔。通過壹個單獨的程序,這些文檔可以提取出來,並重新格式化為HTML。

3>Java包含了壹些標準庫,用於完成特定的任務,同時這些庫簡單易用,能夠大大縮短開發周期。例如,Java提供了用於訪問數據庫的JDBC庫,用於實現分布式對象的RMI等標註庫。C++則依靠壹些非標準的、由其他廠商提供的庫。

Java與C++的異同點總結 - CSDN博客 ?/shennongzhaizhu/article/details/51897060

  • 上一篇:保時捷智慧互聯多少錢壹年
  • 下一篇:煤油溫度計原理 詳解七大常用溫度計原理
  • copyright 2024編程學習大全網