當前位置:才華齋>計算機>C語言>

C語言和JAVA的區別

C語言 閱讀(7.35K)

C語言是一門通用計算機程式語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。下面是小編為大家帶來的關於C語言和JAVA的區別的知識,歡迎閱讀。

C語言和JAVA的區別
  C語言和JAVA的區別

C語言是一門通用計算機程式語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管C語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的C語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱MCU)以及超級電腦等作業平臺。

Java是一種可以撰寫跨平臺應用軟體的面向物件的程式設計語言。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用於PC、資料中心、遊戲控制檯、科學超級計算機、行動電話和網際網路,同時擁有全球最大的開發者專業社群。

  C語言與JAVA理論區別

  1.全域性變數

Java程式中 ,不能在所有類之外定義全域性變數 ,只能通過在一個類中定義公用、靜態的變數來實現一個全域性變數。例如 :

Class GlobalVar

{

public static global_var;

}

在類 GlobalVar中定義變數 global_var為 public stat-ic,使其它類可以訪問和修改該變數。Java對全域性變數進行了更好的封裝。而在 C中 ,依賴於不加封裝的全域性變數常常造成系統的崩潰。

  

Java不支援 C中的 goto語句 ,而是通過例外處理語句 try, Catch,final等來代替 C中用 goto來處理遇到錯誤時跳轉的情況 ,使程式更可讀且更結構化。

  3.指標

指標是 C、 C++中最靈活 ,也是最容易產生錯誤的資料型別。由指標所進行的記憶體地址操作常會造成不可預知的錯誤 ,同時通過指標對某個記憶體地址進行顯式型別轉換後 ,可以訪問一個 C++中的私有成員 ,從而破壞安全性 ,造成系統的崩潰。而 Java對指標進行完全的控制 ,程式設計師不能直接進行任何指標操作 ,例如:把整數轉化為指標 ,或者通過指標釋放某一記憶體地址等。同時 ,陣列作為類在Java中實現 ,良好地解決了陣列訪問越界這一C、 C++中不作檢查的錯誤。

  4.記憶體管理

在 C中 ,程式設計師通過庫函式 malloc()和 free()來分配和釋放記憶體 , C++中則通過運算子 new和 來分配和釋放記憶體。再次釋放已釋放的記憶體塊或未被分配的記憶體塊 ,會造成系統的崩潰 ;同樣 ,忘記釋放不再使用的記憶體塊也會逐漸耗盡系統資源。而在 Java中 ,所有的資料結構都是物件 ,通過運算子new為它們分配記憶體堆。通過new得到物件的處理權 ,而實際分配給物件的記憶體可能隨程式執行而改變 ,Java對此自動地進行管理並且進行垃圾收集 ,有效防止了由於程式設計師的誤操作而導致的錯誤 ,並且更好地利用了系統資源。

  5.資料型別的支援

在 C ,對於不同的平臺 ,編譯器對於簡單資料型別如 in t,float等分別分配不同長度的位元組數 ,例如:int在 IBM PC中為 16位 ,在 VAX-11中為32位 ,這導致了程式碼的不可移植性 ,但在 Java中 ,對於這些資料型別總是分配固定長度的位數 ,如對 int型,它總佔 32位 ,這就保證了 Java的平臺無關性。

  6.型別轉換

在 C中 ,可以通過指標進行任意的型別轉換 ,常常帶來不安全性 ,而 Java中 ,執行時系統對物件的處理要進行型別相容性檢查 ,以防止不安全的轉換。

  7.標頭檔案

C中用標頭檔案來宣告類的原型以及全域性變數、庫函式等 ,在大的系統中 ,維護這些標頭檔案是很困難的。而 Java不支援標頭檔案 ,類成員的型別和訪問許可權都封裝在一個類中 ,執行時系統對訪問進行控制 ,防止對私有成員的操作。同時 ,Java中用 import語句來與其它類進行通訊 ,以便使用它們的方法。

  8.結構和聯合

C中的結構和聯合中所有成員均為公有 ,這就帶來了安全性問題。Java中不包含結構和聯合 ,所有的內容都封裝在類中。

  9.預處理

C中用巨集定義來實現的.程式碼給程式的可讀性帶來了困難。在 Java中 ,不支援巨集 ,它通過關鍵字 final來宣告一個常量 ,以實現巨集定義中廣泛使用的常量定義。

JAVA和C還有一個最大的區別,那就是跨平臺。 通過JAVA虛擬機器的解析,可以使在Windows或UNIX上面寫的程式在其他系統下也能執行,而C語言是絕對不行的。但是C語言在和硬體打交道的時候,速度是最快的。

C比較基礎,java比較流行。但是2者沒有上下之分,一個是程式語言的鼻祖,一個是目前流行的跨平臺語言。擅長的領域不同,在不同的場合用不同的語言。但是,如何運用好這2門語言,也就是對程式設計師的一個考驗。魚和熊掌的問題,取捨最終還是隻能看你自己。