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

java語言和c語言的區別

java語言 閱讀(9.98K)

java語言和C語言作為程式設計的兩大語言,它們之間存在什麼樣的區別呢?下面本站小編就為大家講一講,希望對您有所幫助!

java語言和c語言的區別

  1.C語言

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

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

  

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

  3.C語言和Java的區別

  A.在繼承中的區別

C語言是多線繼承,比如:小轎車和貨車都繼承了汽車類,奧迪2000是繼承小轎車的',東風大卡車是繼承貨車,這樣奧迪2000也可以繼承貨車,東風大卡車也可以繼承小轎車。

JAVA是單繼承的,比如:小轎車和貨車都繼承了汽車類,奧迪2000是繼承小轎車的,東風大卡車是繼承貨車,這樣奧迪2000就不能繼承貨車,當然東風大卡車也不能繼承小轎車。

  B.在動態、靜態繫結中的區別

在C語言中,為了允許執行時動態決定哪個函式被呼叫,一個函式必須用virtual修飾。virtual關鍵字被自動繼承,用以支援多型;凡是沒有用virtual修飾的成員函式(包括static)都是靜態繫結的,即在編譯時決定呼叫哪個版本

而在Java中,除了static、final、private是靜態繫結以外,所有方法一律按動態繫結處理

  C.在初始值的區別

在C語言中,是可以不初始化使用的

而在JAVA中,是必須初始化值的

D.在抽象方法或抽象類的區別

C語言的對等語法是“純虛擬函式”和“抽象類”

Java使用abstract關鍵字修飾抽象方法或抽象類,final類不能被繼承

都使用抽象類作為繼承層次中的基類,提供一般概念,由子類實現其抽象方法,且抽象類都不能被直接例項化為物件

  r關鍵字的區別

JAVA super關鍵字,指代父類物件,通常被用於呼叫父類的構造方法或一般方法

  C語言沒有super關鍵字

  C語言與JAVA的區別之我見

1. C是面向過程的語言,JAVA是面向物件的語言

2. JAVA必須執行在虛擬機器的環境中,這就是很多桌面應用程式都不用JAVA寫的原因, 但是,正是因為虛擬機器,JAVA獲得的平臺無關性,而C的程式有可能需要重新修改編譯才 能實現平臺的移植;另一方面,C語言比JAVA語言更“底層”, C語言可以編寫例如硬體 的驅動,而JAVA在這方面則相對比較弱。

3.指標

JAVA語言讓程式設計者無法找到指標來直接訪問記憶體無指標,並且增添了自動的記憶體管理功能,從而有效地防止了c 語言中指標操作失誤,如野指標所造成的系統崩潰。但也不是說JAVA沒有指標,虛擬機器內部還是使用了指標,只是外人不得使用而已。這有利於Java程式的安全。

4.c不支援字串變數,

在c程式中使用Null終止符代表字串的結

束,在Java中字串是用類物件(strinR和stringBuffer)來實現的,這些類物件是Java語言的核心,用類物件實現字串有以下幾個優點:

(1)在整個系統中建立字串和訪問字串元素的方法是一致的;

(2)Java字串執行執行時檢空,可幫助排除一些執行時發生的錯誤;

(3)可對字串用“十”進行連線操作。

語句

goto語句是c “遺物”,引用goto語句引起了程式結構的混亂,不易理解,goto語句主要用於無條轉移件到其他位置繼續執行程式。

Java不提供goto語句,它雖然指定goto作為關鍵字,但不支援它的使用。

6. 垃圾回收

Java自動進行無用記憶體回收操作,不需要程式設計師進行刪除。而c中必須由程式設計師釋放記憶體資源,增加了程式設計者的負扔。Java中當一個物件不被再用到時,無用記憶體回收器將給它加上標籤以示刪除。無用記憶體回收器在後臺執行,利用空閒時間工作。

7. C語言中只要宣告變數系統就會分配一塊記憶體地址,但並不初始化,也就是說此時變數的值是不可預料的,直到你顯式對其初始化的時候其值才是確定的。java中則不允許對未初始化的變數進行讀寫操作。

8. 區域性變數,C語言中的區域性變數在for迴圈的大括號內才算,而在java中定義的區域性變數在迴圈中的for小括號內也會被算作區域性變數。

9. C語言中 static變數只會宣告一次,並且是可以儲存狀態的。java中不允許將static變數宣告為區域性變數。

10. Java程式不可能造成計算機崩潰。Java系統仔細檢測對記憶體的每次訪問,確認它是合法的,而且不致引起任何問題。不過,即使Java程式也可能有錯誤。如果出現某 種出乎意料之事,程式不會崩潰,而把該例外拋棄。程式會發現這類例外,並加以處理。傳統的程式可以訪問計算機的全部記憶體。程式可能(無意識地)修改記憶體中的 任何值,這就會造成問題。Java程式只能訪問記憶體中允許它們訪問的那些部分,所以Java程式不可能修改不擬修改的值。