當前位置:編程學習大全網 - 編程語言 - JAVE代碼語言和C語言有什麽區別

JAVE代碼語言和C語言有什麽區別

Java與C/C++的區別 (OCR by Lindows) 首先應該清楚,Java是由C++發展而來的,它保留了c++的大部分內容,類似於c++, 但句法更清晰,規模更小,更易學。它是在對多種程序設計語言進行了深入細致研究的 基礎上,據棄了其他語言的不足之處,從根本上解決了c++的固有缺陷,而產生的壹種 新的完全面向對象的語言。 Java和c++的相似之處多於不同之處,但兩種語言問幾處主要的不同使得Java更容易 學習,並且編程環境更為簡單。 因篇幅所限,這裏不能完全列出不同之處,僅列出比較顯著的區別: 1.指針 Java無指針,並且增添了自動的內存管理功能,從而有效地防 止了c/c++語言中指針操作失誤,如指針懸空所造成的系統崩潰。 比w操作返回壹對象的引用,類似於c++中的引用;在c++中, new返回壹個對象的指針。在Java中無指針,不會遇到下面這樣的 語句: Mywork?>Mywork(); 沒有指針的程序無法訪問不屬於它的內存,消除了在c++ 中?些常見的錯誤,這有利於Java程序的安全。 2.多重繼承 c++支持多重繼承,這是c++的壹個特征,它允許多父類派 生壹個類。盡管多重繼承功能很強,但使用復雜,而且會引起許多麻 煩,編譯程序實現它也很不容易。Java不支持多重繼承,但允許壹個 類繼承多個接口(界面),實現了c++多重繼承的功能,又避免了c++的 許多缺陷。 3.數據類型及類 住Java‘fJ,使用了個能和整數湖蝴的布爾類型(bo01ean),它儀有二個值:true或false。 Java是完全面向對象的語言,所有函數和變量部必須是類的壹部分。除了基本數據類型(如 控型初浮點型)之外,其余的都作為類對象,包括中和數組。對象將數據(Proper山s)和方法 (meth。d)結合起來,把它們封裝在類中,這樣每個對象都可實現自己的特點和行為。而c++ 允許將函數和變量定義為全局的。 此外,Java中取消了c/c++中的結構和聯合,使編譯程序更簡捷。 4.自動內存管理 Java程序中所有的對象都是用new操作符建立在堆棧上,這個操作符類似於c++的 new操作符。下面的語句由壹個類Readkcy建立了壹個對象,然後調用該對象的work方 法: 配『9dLey my們rk; m?work=new Readkey() m!work.work()g 這個簡單的代碼片段突出了Ja調和c十十的壹些主要差別,在c十十中,語句Read? key”ywork在堆棧結構上建立了壹個Readkcy的實例。在JaM中不支持基於堆棧的對象, 所以這條語句建立了壹個叫”ywork的變量,該變量中存有對象Readk。7的引用。 Javs自動進行無用內存回收操作,不需要程序員進行刪除。而c十十中必須由程序貝釋 放內存資源,增加了程序設計者的負扔。Java中當壹個對象不被再用到時,無用內存回收器 將給它加上標簽以示刪除。無用內存回收器在後臺運行,利用空閑時間工作。 5.操作符重載 Java不支持操作符重載。操作符重載被認為是c十十的突出特征,在Java中雖然類大 體上pJ以實現這樣的功能,但操作符重載的方便性仍然丟失了不少。Java語言不支持操作 符重載是為了保持Java語言盡可能簡單。 6.預處理功能 Java允預處理器.因此不支持預處理功能。c/c十十在編譯過程中都有壹個預編澤階 段,即眾所周知的預處理器。預處理器為開發人員提供了方便,但增加丁編譯的復雜性。JaM 沒有預處理器,但它提供的引入語句(i”Port)與c十十預處理器的功能類似。 7. Java不支持缺省函數參數,而c十十支持。 在c中,代碼組織在函數中,函數可以訪問程序的全局變量。c十十增加了類,提供了類 算法,該算法是與類相連的函數,c十十類方法與Java類方法十分相似,然而,由於c十十仍 然支持c,所以不能阻止c十十開發人員使用函數,結果函數和方法混合使用使得程序比較 混亂。 Java沒有函數,作為壹個比c十十更純的面向對象的語言,Java強迫開發人員把所有 例行程序包括在類中,事實上,用方法實現例行程序可激勵開發人員更好地組織編碼。 8 字符串 c和c十十不支持字符串變量,在c和c十十程序中使用Null終止符代表字符串的結 束,在Java中字符串是用類對象(strinR和stringBuffer)來實現的,這些類對象是Java語言 的核心,用類對象實現字符串有以下幾個優點: (1)在整個系統中建立字符串和訪問字符串元素的方法是壹致的; (2)J3陽字符串類是作為Java語言的壹部分定義的,而不是作為外加的延伸部分; (3)Java字符串執行運行時檢空,可幫助排除壹些運行時發生的錯誤; (4)可對字符串用“十”進行連接操作。 9“goto語句 “可怕”的goto語句是c和c++的“遺物”,它是該語言技術上的合法部分,引用goto 語句引起了程序結構的混亂,不易理解,goto語句子要用於無條件轉移子程序和多結構分 支技術。 鑒於以廣理由,Java不提供goto語句,它雖然指定goto作為關鍵字,但不支持它的使 用,使程序簡潔易讀。 l0.類型轉換 在c和c十十中有時出現數據類型的隱含轉換,這就涉及了自動強制類型轉換問題。例 如,在c十十中可將壹浮點值賦予整型變量,並去掉其尾數。Java不支持c十十中的自動強 制類型轉換,如果需要,必須由程序顯式進行強制類型轉換。 11.其它 (1)break和continue後可加標號,以便跳出它標識的塊。如: inTlJ; char a; outing; {for(i=:i<5;i十十) for(j=0;j<3i j++) {if((a=(char)system.in.read()) break outing; }} 2)析構函數為void finalize映(){} Java並不保證壹定調用該函數,因此不能依賴該函數來保證所寫代碼的正常運行。 (3)用packa8e將有關聯的類組織在壹起。例如,將自己編寫的類組織成packaBe; Packa8e mycla5se55 (4)用extaNs表示繼承(派生)關系,如; class ne訂?clas5壹name extends oN?class?name 47 (5)虛函數用ab列ra瓤修飾,而不用v加ual。 (6)提供丁壹個創建完全虛類(界面)的方法; Public interface intl『facenamEt//abstract mGthods) 利用界面可以為虛類定義協議,而不關心具體實施。壹個類可以實現多個界面,同壹個界面 也可以被多個類實現。實現界面使用imNemen賄,如: public classname implmen比int6rfacena毗4) (7)異常。用於捕獲例外事件,增強系統容錯能力 try{//可能產生例外的代碼 }catch(exceptionType name){ //處理 其中exceptionType表示異常類型,如Arith

  • 上一篇:java與php做web開發最大的區別在那為什麽好多用java的
  • 下一篇:PM-84沖鋒槍的結構是什麽樣子的?
  • copyright 2024編程學習大全網