C語(yǔ)言與JAVA的區(qū)別是什么

這篇文章給大家介紹C語(yǔ)言與JAVA的區(qū)別是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都做網(wǎng)站、網(wǎng)站建設(shè)的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒(méi)有做好網(wǎng)站,給創(chuàng)新互聯(lián)建站一個(gè)展示的機(jī)會(huì)來(lái)證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來(lái)新的靈感和驚喜。面向用戶(hù)友好,注重用戶(hù)體驗(yàn),一切以用戶(hù)為中心。

首先來(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ā)表了不依賴(lài)于具體機(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)類(lèi)電子產(chǎn)品市場(chǎng),例如,交互式電視、烤面包箱等。Sun內(nèi)部人員把這個(gè)項(xiàng)目稱(chē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)類(lèi)電子產(chǎn)品和工作站產(chǎn)品在開(kāi)發(fā)哲學(xué)上的差異:消費(fèi)類(lèi)電子產(chǎn)品要求可靠性高、費(fèi)用低、標(biāo)準(zhǔn)化、使用簡(jiǎn)單,用戶(hù)并不關(guān)心CPU的型號(hào),也不欣賞專(zhuān)用昂貴的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ū)ο舐铩:臀覀兊乃季S很相似,所以開(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ǔ)法比較類(lèi)似的。

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

言有著自己的標(biāo)準(zhǔn)庫(kù),JAVA卻有著自己得類(lèi)庫(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ì)象分類(lèi)的一定內(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ǔ)法中使用的基本類(lèi)型

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

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

在繼承中

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

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

JAVA是單繼承的,比如:小轎車(chē)和貨車(chē)都繼承了汽車(chē)類(lèi),奧迪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中,是必須初始化值的

抽象方法或抽象類(lèi)

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

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

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

super

JAVA super關(guān)鍵字,指代父類(lèi)對(duì)象,通常被用于調(diào)用父類(lèi)的構(gòu)造方法或一般方法
C語(yǔ)言沒(méi)有super關(guān)鍵字

this

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

package

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

Java有package的概念,可以將類(lèi)組織起來(lái),便于打包和部署,也有利于類(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)域。

關(guān)于C語(yǔ)言與JAVA的區(qū)別是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

當(dāng)前題目:C語(yǔ)言與JAVA的區(qū)別是什么
URL標(biāo)題:http://bm7419.com/article6/gihgig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站排名、、面包屑導(dǎo)航、網(wǎng)站營(yíng)銷(xiāo)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)