糯米文學吧

位置:首頁 > 計算機 > java語言

C語言與JAVA有哪些區別

java語言1.43W

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語言卻是在網絡下層工作的,要對協議比較瞭解。總之,各有各的好處,各有各的領域。

標籤:JAVA 語言