天天看點

Java和C語言的差別在哪裡?

Java和C語言的差別在哪裡?

設計者聯盟2016-08-16 14:24

1.Java與C語言各自的優勢

C語言是面向過程的語言,執行效率高;Java是面向對象的語言,執行效率比C語言低。

C語言最關鍵的是比Java多了指針,這也說明了Java的健壯性,還有Java的多線程機制使程式可以并行運作,Java程式多用于網絡。

C語言的安全性不如Java,C語言沒有Java的垃圾回收機制,申請的空間要手動釋放。

Java的通用性好,可以跨平台直接移植,隻要有安裝Java虛拟機(JVM)就可以了。

2.Java和C語言誰的通用性會比較好

在速度上,C語言編寫的程式要優于Java,因為Java必須運作在虛拟機的環境中,但是因為虛拟機,Java獲得的平台無關性,而C語言的程式有可能需要重新修改編譯才能實作平台的移植,

另一方面,C語言比Java語言更“底層”,是以可以用C編寫例如硬體的驅動,而Java卻不行。Java和C語言還有個明顯的不同就是C語言注重的是算法,但是Java卻不一樣,想用的時候導包就可以了。

C語言的算法很重要,但是Java中的算法沒有C語言那麼複雜。列印的方法:C語言是printf("…….");而Java是System.out.print("……."),也可以用println,ln表示換行。

Java程式中的基本資料類型(boolean,char,byte,short,int,long,float,double),是對對象的引用;C語言也有許多種基本類型,還有struct,union,enum,數組和指針。

在Java沒有枚舉、聯合類型。Java采用Unicode字元集,C語言通常采用的是ASCII字元集,A—65,a—97。C語言的變量可以不進行初始化,但Java的變量要進行初始化。

在C語言中,char類型占一個位元組,在Java中char類型占2個位元組。

3Java和C語言各自的特征

Java面向對象的特征主要有封裝,繼承,多态。類的繼承關系是單一的、非多重的,一個子類隻有一個父類,子類的父類又隻有一個父類。C語言支援“運算符的重載”,這是它的一個很重要的多态特征,是資料抽象和泛型程式設計的利器。它允許直接對對象進行四則運算,正像基本資料類型那樣Java不支援這種多态機制,也是為降低複雜性。

Java可以支援方法重載和重寫,所謂重載就是一個類具備多個相同屬性行為;重寫就是在繼承關系中父類的行為在不同的子類上有不同的實作。在Java中比C語言多了一些修飾符,如通路修飾符Public(公共的)、Private(私有的)、Protected(受保護的)、預設。

Java有super關鍵字,指代父類對象,通常被用于調用父類的構造方法或一般方法C語言則沒有super關鍵字,兩者都有this,指代目前對象。

在Java中,除了static、final、private是靜态綁定以外,所有方法一律按動态綁定處理。Java中可以将類組織起來用Package打包,而C語言沒有。