達內廣州IT培訓
美國上市IT培訓機構

18589266248

熱門課程

常問問題:C語言與Java編程的區別是什么?

  • 時間:2018-04-28 15:55
  • 發布:廣州達內
  • 來源:達內新聞

首先來說說他們各自的歷史:

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語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。

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

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《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語言的語法比較類似的。

在語法的程序庫中

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數據結構和算法(一)開篇
下一篇:Java EE的拯救者還是掘墓人?

馬上預約三天免費體驗課

姓名:

電話:

Linux的發展前景怎么樣_如何速成Linux

ios和C語言為什么越來越受重視_零基礎怎么學

什么是云計算 云計算應該怎么學

HTML5的內容有哪些 HTML5的就業前景怎么樣

選擇城市和中心
江西省

貴州省

廣西省

海南省

中文字幕综合