C++與Java的區別
人們往往誤以為兩種語言相似意味着其在功能上也彼此接近。然而,盡管Java與C++擁有類似的語法,但 其執行與處理機制則完全不同。
解釋對編譯:Java是一種解釋性語言,意味着其在執行時會被“翻譯”為二進制形式,也就是java跑得時 候必須有人(jvm)去解釋它。
而C++則是編譯語言,意味着程序只能在特定操作系統上編譯並在特定系 統上運行,也就是說C++一步到位成機器語言的。
內存安全:Java是一種內存安全型語言,意味着大家可以為給定數組分配任意參數,即使超出范圍也只會 返回錯誤提示。
C++更為靈活,但代價是一旦分配的參數超出資源范圍,則會引起錯誤甚至嚴重崩潰。
性能:Java人氣極高,但其代碼由於需要在運行前進行解釋因此性能表現更差。
C++會被編譯為二進制形 式,因此其能夠立即運行且速度更快。如果你寫一個c++的程序和做同樣事情的java程序,可能你感覺兩 者速度差不多。但如果這兩個程序都足夠大、而且c++的代碼經過過優化,兩者的速度差就會變得很顯著 甚至很驚人,C++會比java快很多。
指針:指針是一種C++結構,允許您直接在內存空間中進行值管理。
Java不支持指針,因此您可能使用值 引用的方式進行值傳遞。
重載:重載是指對某種方法或者運算符的功能進行“重新定義”。
Java允許方法重載,而C++則允許進行 運算符重載。