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
Java作為一門高級編程語言在信息科技時代有着廣泛的應用。新手如何學習Java呢?下面小編來給大家介紹Java的學習方法,希望對大家有幫助!1理解Java思想Java是一門面向對象編程語言。向對象編程是Java最核心的思想,這也是區分和C等其他編程語言的一個顯著特徵。掌握...
-
jsp向cookie寫入中文亂碼的解決辦法
jsp在向cookie寫入中文亂碼大家是怎麼處理的呢?下面是小編給大家提供的解決辦法,大家可以參考閲讀,更多詳情請關注應屆畢業生考試網。在jsp中對中文的處理有一點不好就可能出現亂碼了,下面我來給大家介紹jsp中向cookie寫入中文實現程序有需要了解的`朋友可參考。Co...
-
2017年3月計算機二級Java基礎知識習題
學習是把知識能力思維方法等轉化為你的私有產權的重要手段,是“公有轉私”的重要途徑。以下是本站小編彙總的2017年3月計算機二級Java基礎知識習題,歡迎學習!1、結構化程序設計主要強調的是______。A、程序的規模B、程序的易讀性C、程序的執行效率D、程序的可移...
-
java讀取解析xml文件實例
如何在Java中讀取解析文件呢?下面小編為大家整理了java讀取解析xml文件實例,希望能幫到大家!讀取本地的xml文件,通過DOM進行解析,DOM解析的特點就是把整個xml文件裝載入內存中,形成一顆DOM樹形結構,樹結構是方便遍歷和和操縱。DOM解析的特性就是讀取xml文件轉換為dom...