C語(yǔ)言與JAVA的區(qū)別是什么
來(lái)源:易賢網(wǎng) 閱讀:981 次 日期:2017-04-08 13:42:05
溫馨提示:易賢網(wǎng)小編為您整理了“C語(yǔ)言與JAVA的區(qū)別是什么”,方便廣大網(wǎng)友查閱!

首先來(lái)說(shuō)說(shuō)他們各自的歷史:C語(yǔ)言的發(fā)展歷史

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

1963年,劍橋大學(xué)將ALGOL 60語(yǔ)言發(fā)展成為CPL(Combined Programming Language)語(yǔ)言。

1967年,劍橋大學(xué)的Matin Richards 對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL語(yǔ)言。

1970年,美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語(yǔ)言”。意思是將CPL語(yǔ)言煮干,提煉出它的精華。并且他用B語(yǔ)言寫(xiě)了第一個(gè)UNIX操作系統(tǒng)。

而在1973年,B語(yǔ)言也給人“煮”了一下,美國(guó)貝爾實(shí)驗(yàn)室的D.M.RITCHIE在B語(yǔ)言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語(yǔ)言,他取了BCPL的第二個(gè)字母作為這種語(yǔ)言的名字,這就是C語(yǔ)言。

為了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie 發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語(yǔ)言編譯文本《可移植的C語(yǔ)言編譯程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語(yǔ)言成為目前世界上流行最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言。

1988年,隨著微型計(jì)算機(jī)的日益普及, 出現(xiàn)了許多C語(yǔ)言版本。由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語(yǔ)言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國(guó)國(guó)家標(biāo)準(zhǔn)研究所(ANSI)為C語(yǔ)言制定了一套ANSI標(biāo)準(zhǔn), 成為現(xiàn)行的C語(yǔ)言標(biāo)準(zhǔn) 3.C語(yǔ)言的主要特點(diǎn) 。C語(yǔ)言發(fā)展迅速, 而且成為最受歡迎的語(yǔ)言之一, 主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語(yǔ)言編寫(xiě)的。用C語(yǔ)言加上一些匯編語(yǔ)言子程序, 就更能顯示C語(yǔ)言的優(yōu)勢(shì)了,象PC- DOS 、WORDSTAR等就是用這種方法編寫(xiě)的。

在來(lái)說(shuō)說(shuō)Java

Java是一個(gè)由Sun公司開(kāi)發(fā)而成的新一代編程語(yǔ)言。使用它可在各式各樣不同種機(jī)器、不同種操作平臺(tái)的網(wǎng)絡(luò)環(huán)境中開(kāi)發(fā)軟件。不論你使用的是哪一種WWW瀏覽器,哪一種計(jì)算機(jī),哪一種操作系統(tǒng),只要WWW瀏覽器上面注明了“支持Java”,你就可以看到生動(dòng)的主頁(yè)。Java正在逐步成為Internet應(yīng)用的主要開(kāi)發(fā)語(yǔ)言。它徹底改變了應(yīng)用軟件的開(kāi)發(fā)模式,帶來(lái)了自PC機(jī)以來(lái)又一次技術(shù)革命,為迅速發(fā)展的信息世界增添了新的活力。

Sun的Java語(yǔ)言開(kāi)發(fā)小組成立于1991年,其目的是開(kāi)拓消費(fèi)類電子產(chǎn)品市場(chǎng),例如,交互式電視、烤面包箱等。Sun內(nèi)部人員把這個(gè)項(xiàng)目稱為Green,那時(shí)WorldWideWeb還在圖紙上呢。該小組的領(lǐng)導(dǎo)人是JamesGosling,是一位非常杰出的程序員。他出生于1957年,于1984年加盟SunMicrosystem公司,之前在一家IBM研究機(jī)構(gòu)工作。他是SunNeWs窗口系統(tǒng)的總設(shè)計(jì)師。也是第一個(gè)用C實(shí)現(xiàn)的EMACS的文本編輯器COSMACS的開(kāi)發(fā)者。

在研究開(kāi)發(fā)過(guò)程中,Gosling深刻體會(huì)到消費(fèi)類電子產(chǎn)品和工作站產(chǎn)品在開(kāi)發(fā)哲學(xué)上的差異:消費(fèi)類電子產(chǎn)品要求可靠性高、費(fèi)用低、標(biāo)準(zhǔn)化、使用簡(jiǎn)單,用戶并不關(guān)心CPU的型號(hào),也不欣賞專用昂貴的RISC處理器,他們需要建立在一個(gè)標(biāo)準(zhǔn)基礎(chǔ)之上,具有一系列可選的方案,從8086到80586都可以選取。

C語(yǔ)言和JAVA其實(shí)是很相識(shí)的,最直接的區(qū)別就在與,一個(gè)是全面向過(guò)程,一個(gè)是面向?qū)ο?。而且JAVA是可以跨平臺(tái)的。而C語(yǔ)言不能,但能夠直接操作硬件,并且生成機(jī)器碼的效率高。C語(yǔ)言多了一個(gè),指針也是C語(yǔ)言的精髓,想要學(xué)好C語(yǔ)言,指針就必須學(xué)好。JAVA是沒(méi)有指針的。

總的來(lái)說(shuō),C語(yǔ)言是基礎(chǔ)語(yǔ)言,JAVA是面向?qū)ο蟮囊婚T(mén)語(yǔ)言,在學(xué)習(xí)JAVA語(yǔ)言前,我覺(jué)得還是最好先學(xué)習(xí)C語(yǔ)言,因?yàn)镃語(yǔ)言的語(yǔ)法比較簡(jiǎn)單,只是他的亮點(diǎn)指針很容易出錯(cuò),想要好好的運(yùn)用指針是件很難的事,當(dāng)然,用好了,對(duì)你的程序是有很好的幫助,反之,就會(huì)讓你的程序崩潰掉。JAVA更實(shí)用于開(kāi)發(fā)東西了,比較實(shí)用,因?yàn)镴AVA面向?qū)ο舐?。和我們的思維很相似,所以開(kāi)發(fā)起來(lái)就簡(jiǎn)單些,而C語(yǔ)言是面向過(guò)程,就和我們的思維方式有著差異,開(kāi)發(fā)就很少了。而且很難。但因?yàn)镃語(yǔ)言能夠直接操作硬件,所以在一些嵌入式系統(tǒng)中,C語(yǔ)言是使用最廣泛的語(yǔ)言。

在語(yǔ)法中

JAVA是從可以算是從C++發(fā)展而來(lái)的,因此Java與C語(yǔ)言的語(yǔ)法比較類似的。

在語(yǔ)法的程序庫(kù)中

言有著自己的標(biāo)準(zhǔn)庫(kù),JAVA卻有著自己得類庫(kù)。

在內(nèi)存的管理中

C語(yǔ)言在使用完一塊內(nèi)存時(shí),要手動(dòng)把內(nèi)存釋放掉,如果不釋放的話,運(yùn)行久了,程序很容易就會(huì)崩潰掉的。由于需要顯式的歸還內(nèi)存,因此當(dāng)一個(gè)函數(shù)需要將一塊內(nèi)存返回給調(diào)用者的時(shí)候,問(wèn)題就比較復(fù)雜了。所以我們所以時(shí)要注意:(1) 在調(diào)用者中先分配好內(nèi)存,作為參數(shù)傳入到被調(diào)用的函數(shù)中(2) 在被調(diào)用的函數(shù)中分配,使用完后在調(diào)用者中釋放(3) 在被調(diào)用函數(shù)中使用static變量,可以將該變量返回。

而JAVA基本不用考慮內(nèi)存的問(wèn)題,如果想用一個(gè)對(duì)象,new一個(gè)就可以,這個(gè)過(guò)程的背后則是JRE為對(duì)象分類的一定內(nèi)存,當(dāng)JRE發(fā)現(xiàn)你不再使用這個(gè)對(duì)象的時(shí)候,他就會(huì)自動(dòng)回收內(nèi)存,也就是說(shuō)你只管借東西,不用管歸還,因?yàn)榕c有人當(dāng)你的跟班,在你不使用的時(shí)候就把東西歸還了,不過(guò)這個(gè)過(guò)程還是有的,只不過(guò)是JRE作的而已。

語(yǔ)法中使用的基本類型

C語(yǔ)言有著很多的基本類型如:(boolean, char, byte, short, int, long, float, double,struct, union, enum)還有數(shù)組,指針等等。

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

在繼承中

兩種語(yǔ)言都支持方法重載的

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

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

動(dòng)態(tài)、靜態(tài)綁定

在C語(yǔ)言中,為了允許運(yùn)行時(shí)動(dòng)態(tài)決定哪個(gè)函數(shù)被調(diào)用,一個(gè)函數(shù)必須用virtual修飾。virtual關(guān)鍵字被自動(dòng)繼承,用以支持多態(tài);凡是沒(méi)有用virtual修飾的成員函數(shù)(包括static)都是靜態(tài)綁定的,即在編譯時(shí)決定調(diào)用哪個(gè)版本

而在Java中,除了static、final、private是靜態(tài)綁定以外,所有方法一律按動(dòng)態(tài)綁定處理

初始值

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

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

抽象方法或抽象類

C語(yǔ)言的對(duì)等語(yǔ)法是“純虛函數(shù)”和“抽象類”

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

都使用抽象類作為繼承層次中的基類,提供一般概念,由子類實(shí)現(xiàn)其抽象方法,且抽象類都不能被直接實(shí)例化為對(duì)象

super

JAVA super關(guān)鍵字,指代父類對(duì)象,通常被用于調(diào)用父類的構(gòu)造方法或一般方法

C語(yǔ)言沒(méi)有super關(guān)鍵字

this

兩者都有,都是只當(dāng)前的對(duì)象

package

C語(yǔ)言沒(méi)有

Java有package的概念,可以將類組織起來(lái),便于打包和部署,也有利于類的安全。

在語(yǔ)法中還有很多的差異,就不一一列出來(lái)了,可以看出,JAVA比C語(yǔ)言要精簡(jiǎn)很多,在生活上的實(shí)用性也很強(qiáng),C語(yǔ)言卻是哎操作內(nèi)存上比較強(qiáng)。也就是說(shuō)JAVA比較適合在上層工作,只要我們懂得接口就好,而C語(yǔ)言卻是在網(wǎng)絡(luò)下層工作的,要對(duì)協(xié)議比較了解??傊?,各有各的好處,各有各的領(lǐng)域。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:C語(yǔ)言與JAVA的區(qū)別是什么
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)