亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語言

C語言與JAVA有哪些區(qū)別

時間:2024-09-09 23:26:12 java語言 我要投稿
  • 相關(guān)推薦

C語言與JAVA有哪些區(qū)別

  C語言與JAVA有哪些區(qū)別?相信很多初學者都會有這樣的疑問,下面百分網(wǎng)小編帶大家一起來看看詳細內(nèi)容,希望對大家有所幫助!想了解更多相關(guān)信息請持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

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

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

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

  1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,于是產(chǎn)生了BCPL語言。

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

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

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

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

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

  在來說說Java

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

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

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

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

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

  在語法中

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

  在語法的程序庫中

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

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

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

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

  語法中使用的基本類型

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

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

  在繼承中

  兩種語言都支持方法重載的

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

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

  動態(tài)、靜態(tài)綁定

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

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

  初始值

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

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

  抽象方法或抽象類

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

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

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

  super

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

  C語言沒有super關(guān)鍵字

  this

  兩者都有,都是只當前的對象

  package

  C語言沒有

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

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

【C語言與JAVA有哪些區(qū)別】相關(guān)文章:

C語言與JAVA的區(qū)別07-07

C++、C語言和JAVA開發(fā)有哪些區(qū)別08-09

C語言與JAVA理論區(qū)別10-25

淺析Java程序與C語言的區(qū)別07-26

C++、C語言和JAVA開發(fā)的區(qū)別06-28

Java與C/C++的區(qū)別06-18

C語言的缺點有哪些09-16

Java語言的優(yōu)點有哪些08-15

java基礎(chǔ)語言有哪些09-12

C語言assert的用法有哪些07-17