招生合作
課程分類
您當(dāng)前的位置:深圳優(yōu)匯學(xué) >深圳優(yōu)匯學(xué) >c語(yǔ)言與java的區(qū)別

深圳JAVA學(xué)習(xí)網(wǎng)

c語(yǔ)言與java的區(qū)別

發(fā)布時(shí)間:2020-10-30 11:00:51 已幫助:179人

c語(yǔ)言與java的區(qū)別

 c語(yǔ)言與java相比可以說(shuō)是各有千秋,有許多相同之處,也有不同的地方,今天小編就來(lái)區(qū)分一下他們之間的有什么不同。


首先,C語(yǔ)言是面向過(guò)程的語(yǔ)言,執(zhí)行效率高;Java是面向?qū)ο蟮恼Z(yǔ)言,執(zhí)行效率比C語(yǔ)言低。C語(yǔ)言最關(guān)鍵的是比Java多了指針,這也說(shuō)明了Java的健壯性,還有Java的多線程機(jī)制使程序可以并行運(yùn)行,Java程序多用于網(wǎng)絡(luò)。C語(yǔ)言的安全性不如Java,C語(yǔ)言沒(méi)有Java的垃圾回收機(jī)制,申請(qǐng)的空間要手動(dòng)釋放。Java的通用性好,可以跨平臺(tái)直接移植,只要有安裝Java虛擬機(jī)(JVM)就可以了。

在速度上,C語(yǔ)言編寫的程序要優(yōu)于Java,因?yàn)镴ava必須運(yùn)行在虛擬機(jī)的環(huán)境中,但是因?yàn)樘摂M機(jī),Java獲得的平臺(tái)無(wú)關(guān)性,而C語(yǔ)言的程序有可能需要重新修改編譯才能實(shí)現(xiàn)平臺(tái)的移植,另一方面,C語(yǔ)言比Java語(yǔ)言更“底層”,更接近計(jì)算機(jī)的編譯的語(yǔ)言。因此可以用C編寫例如硬件的驅(qū)動(dòng),而Java卻不行。在Java沒(méi)有枚舉、聯(lián)合類型。

c++發(fā)展到2015年在開(kāi)發(fā)效率上已經(jīng)不會(huì)輸給java了,絕大多數(shù)java支持的特性都增加了?,F(xiàn)代c++也增加了跨平臺(tái)支持,windows、linux、apple等都支持,而且代碼是統(tǒng)一的,只需要重新編譯一下就好,和java是一樣的。c++的優(yōu)勢(shì)就是效率高,c++編寫的要比java編寫的快10~15倍。但從深圳嵌入式培訓(xùn)了解到的的角度講,目前java的招聘崗位比較多,c++的薪水會(huì)比java高一點(diǎn),但學(xué)習(xí)難度比java大很多了。

C語(yǔ)言的變量可以不進(jìn)行初始化,但Java的變量要進(jìn)行初始化。Java面向?qū)ο蟮奶卣髦饕蟹庋b,繼承,多態(tài)。類的繼承關(guān)系是單一的、非多重的,一個(gè)子類只有一個(gè)父類,子類的父類又只有一個(gè)父類。C語(yǔ)言支持“運(yùn)算符的重載”,這是它的一個(gè)很重要的多態(tài)特征,是數(shù)據(jù)抽象和泛型編程的利器。Java不支持這種多態(tài)機(jī)制,也是為降低復(fù)雜性。

Java可以支持方法重載和重寫,所謂重載就是一個(gè)類具備多個(gè)相同屬性行為;重寫就是在繼承關(guān)系中父類的行為在不同的子類上有不同的實(shí)現(xiàn)。Java中可以將類組織起來(lái)用Package打,而C語(yǔ)言沒(méi)有。

C語(yǔ)言和Java的區(qū)別遠(yuǎn)不止這些。想要更深入的學(xué)習(xí)的話,歡迎前來(lái)咨詢了解報(bào)名。