首頁  >  文章  >  Java  >  java與c的差別

java與c的差別

(*-*)浩
(*-*)浩原創
2019-11-11 10:20:398791瀏覽

Java和C都是指令式語言(Imperative Language),不同的是Java有物件導向(OO)成分在裡面,而C是完全面向過程的,C的高階版本C 、C#支援面向對象。

java與c的差別

另外一個不同是,Java跨平台,既不同的作業系統都可以透過JVM來解釋Java程序,而C、C 、C#則是與平台相關的,有些指令只在某些作業系統中才能執行。      (建議學習:java課程

#具體原因是,Java是解釋型語言,所有程式碼都會翻譯成統一的、與系統無關的bytecode,然後放到JVM上運行;而C是編譯式語言,程式碼要先透過編譯器轉換成與系統相關的中間程式碼,然後才能運作。

再一個不同是,Java不支援系統調用,既無法與作業系統進行交互,這是由它跨平台的特點決定的,而C則可以調用系統中的指令,如fork() 。這也就是為什麼Java中只有執行緒(Thread)概念而沒有進程(Process)概念,而C兩者都有。

再者,Java無法對記憶體進行控制,而C則可以透過指針對記憶體進行人為分配。

還有一點,Java有Gabbage Collection機制,可以自動回收不再使用的空間,而C則要用free()函數釋放空間。

在速度上,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個位元組。

總的來說,Java比較C更容易上手,學得快,但對於了解程式語言來說幫助不如C大。

以上是java與c的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn