古詩詞大全網 - 成語查詢 - Java和C的區別

Java和C的區別

Java和C都是指令式語言(Imperative Language),不同的是Java有面向對象(OO)成分在裏面,而C是完全面向過程的,C的高級版本C++、C#支持面向對象。

另外壹個不同是,Java跨平臺,既不同的操作系統都可以通過JVM來解釋Java程序,而C、C++、C#則是與平臺相關的,有些指令只在某些操作系統中才能執行。具體原因是,Java是解釋型語言,所有代碼都會翻譯成統壹的、與系統無關的bytecode,然後放到JVM上運行;而C是編譯式語言,代碼要先通過編譯器轉換成與系統相關的中間代碼,然後才能運行。

再壹個不同是,Java不支持系統調用,既無法與操作系統進行交互,這是由它跨平臺的特點決定的,而C則可以調用系統中的指令,如fork()。這也就是為什麽Java中只有線程(Thread)概念而沒有進程(Process)概念,而C兩者均有。

再者,Java無法對內存進行控制,而C則可以通過指針對內存進行人為分配。

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