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

C語言與JAVA有哪些區別

java語言 閱讀(1.47W)

C語言與JAVA有哪些區別?相信很多初學者都會有這樣的疑問,下面本站小編帶大家一起來看看詳細內容,希望對大家有所幫助!想了解更多相關資訊請持續關注我們應屆畢業生考試網!

C語言與JAVA有哪些區別

  首先來說說他們各自的歷史:C語言的發展歷史

C語言的發展頗為有趣。它的原型ALGOL 60語言。(也成為A語言)

1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。

1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。

1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,併為它起了一個有趣的名字“B語言”。意思是將CPL語言煮幹,提煉出它的精華。並且他用B語言寫了第一個UNIX作業系統

而在1973年,B語言也給人“煮”了一下,美國貝爾實驗室的HIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。

為了使UNIX作業系統推廣,1977年Dennis hie 發表了不依賴於具體機器系統的C語言編譯文字《可移植的C語言編譯程式》。

1978年Brian ighian和Dennis hie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高階程式設計語言。

1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標準,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C語言制定了一套ANSI標準, 成為現行的C語言標準 3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些組合語言子程式, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。

  在來說說Java

Java是一個由Sun公司開發而成的新一代程式語言。使用它可在各式各樣不同種機器、不同種操作平臺的網路環境中開發軟體。不論你使用的是哪一種WWW瀏覽器,哪一種計算機,哪一種作業系統,只要WWW瀏覽器上面註明了“支援Java”,你就可以看到生動的主頁。Java正在逐步成為Internet應用的主要開發語言。它徹底改變了應用軟體的開發模式,帶來了自PC機以來又一次技術革命,為迅速發展的資訊世界增添了新的活力。

Sun的Java語言開發小組成立於1991年,其目的是開拓消費類電子產品市場,例如,互動式電視、烤麵包箱等。Sun內部人員把這個專案稱為Green,那時WorldWideWeb還在圖紙上呢。該小組的領導人是JamesGosling,是一位非常傑出的程式設計師。他出生於1957年,於1984年加盟SunMicrosystem公司,之前在一家IBM研究機構工作。他是SunNeWs視窗系統的總設計師。也是第一個用C實現的EMACS的文字編輯器COSMACS的開發者。

在研究開發過程中,Gosling深刻體會到消費類電子產品和工作站產品在開發哲學上的差異:消費類電子產品要求可靠性高、費用低、標準化、使用簡單,使用者並不關心CPU的型號,也不欣賞專用昂貴的RISC處理器,他們需要建立在一個標準基礎之上,具有一系列可選的方案,從8086到80586都可以選取。

C語言和JAVA其實是很相識的,最直接的區別就在與,一個是全面向過程,一個是面向物件。而且JAVA是可以跨平臺的。而C語言不能,但能夠直接操作硬體,並且生成機器碼的效率高。C語言多了一個,指標也是C語言的精髓,想要學好C語言,指標就必須學好。JAVA是沒有指標的。

總的來說,C語言是基礎語言,JAVA是面向物件的一門語言,在學習JAVA語言前,我覺得還是最好先學習C語言,因為C語言的語法比較簡單,只是他的亮點指標很容易出錯,想要好好的運用指標是件很難的事,當然,用好了,對你的程式是有很好的幫助,反之,就會讓你的程式崩潰掉。JAVA更實用於開發東西了,比較實用,因為JAVA面向物件嘛。和我們的思維很相似,所以開發起來就簡單些,而C語言是面向過程,就和我們的思維方式有著差異,開發就很少了。而且很難。但因為C語言能夠直接操作硬體,所以在一些嵌入式系統中,C語言是使用最廣泛的語言。

  在語法中

JAVA是從可以算是從C++發展而來的,因此Java與C語言的語法比較類似的。

  在語法的程式庫中

言有著自己的標準庫,JAVA卻有著自己得類庫。

  在記憶體的管理中

C語言在使用完一塊記憶體時,要手動把記憶體釋放掉,如果不釋放的話,執行久了,程式很容易就會崩潰掉的。由於需要顯式的歸還記憶體,因此當一個函式需要將一塊記憶體返回給呼叫者的.時候,問題就比較複雜了。所以我們所以時要注意:(1) 在呼叫者中先分配好記憶體,作為引數傳入到被呼叫的函式中(2) 在被呼叫的函式中分配,使用完後在呼叫者中釋放(3) 在被呼叫函式中使用static變數,可以將該變數返回。

而JAVA基本不用考慮記憶體的問題,如果想用一個物件,new一個就可以,這個過程的背後則是JRE為物件分類的一定記憶體,當JRE發現你不再使用這個物件的時候,他就會自動回收記憶體,也就是說你只管借東西,不用管歸還,因為與有人當你的跟班,在你不使用的時候就把東西歸還了,不過這個過程還是有的,只不過是JRE作的而已。

  語法中使用的基本型別

C語言有著很多的基本型別如:(boolean, char, byte, short, int, long, float, double,struct, union, enum)還有陣列,指標等等。

在JAVA中:只有(boolean, char, byte, short, int, long, float, double)這8種基本型別和引用的。

  在繼承中

  兩種語言都支援方法過載的

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

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

  動態、靜態繫結

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

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

  初始值

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

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

抽象方法或抽象類

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

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

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

super

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

C語言沒有super關鍵字

this

兩者都有,都是隻當前的物件

package

C語言沒有

Java有package的概念,可以將類組織起來,便於打包和部署,也有利於類的安全。

在語法中還有很多的差異,就不一一列出來了,可以看出,JAVA比C語言要精簡很多,在生活上的實用性也很強,C語言卻是哎操作記憶體上比較強。也就是說JAVA比較適合在上層工作,只要我們懂得介面就好,而C語言卻是在網路下層工作的,要對協議比較瞭解。總之,各有各的好處,各有各的領域。