隨筆-208  評論-469  文章-30  trackbacks-0
          不知道從什么時候起喜歡JAVA的,從JDK1.4到現(xiàn)在1.6,從最基本的main()開始到現(xiàn)在從事J2EE的開發(fā),從ASP做WEB程序到現(xiàn)在用JAVA獨立開發(fā)軟件,回頭看一下,光陰已走,路還是這條路。
          朋友偶爾問我C語言方面的東西,自己從來沒有系統(tǒng)學(xué)過,有些問題一知半解,到最近幾天拿著高中買的數(shù)據(jù)結(jié)構(gòu)<C語言版>看,似乎愛上了C,程序貴在相通,萬變不離其宗,上手很快。趁現(xiàn)在坐在客廳里吹風(fēng),有本本在,隨手在網(wǎng)上找些資料整理一下JAVA和C的區(qū)別,但又很矛盾,如果單從語言來比較是沒有什么太多意義的,一個類似寄生蟲一樣的東西,一個是生下來就可以跑的家伙,但我今天的BLOG還是要寫,以此充數(shù)吧!至少也是我的心得。

          ??? 1.?Java沒有預(yù)處理指令。(如C中的#define , #include , #ifdef等)。C中的常量定義在Java中用static final來取代。
          ??? 2.?Java中沒有C中的全局變量。
          ??? 3.?Java中的主類型的size是確定的,而C中主類型的size跟平臺相關(guān)。
          ??? 4.?Java中沒有了指針,它使用了類似的句柄來取代指針,但是Java中不允許對句柄進(jìn)行加減,沒有取地址操作符之類的東東。
          ??? 5.?Java有垃圾收集機制,不需要自己釋放空間。
          ??? 6.?Java沒有g(shù)oto語句。Java在C提供的控制語句基礎(chǔ)上增加了異常處理和標(biāo)簽break和continue語句。這些可以替代goto的作用。
          ??? 7.?C要求一個方法或塊中使用的所有局部變量的定義在該方法或塊的最開始處定義,而Java允許這些定義在方法或塊的任意地方出現(xiàn)。
          ??? 8.?Java不要求在調(diào)用一個函數(shù)以前已經(jīng)定義了該函數(shù),可以在調(diào)用點后面定義。而C有這個要求。
          ??? 9.?Java不支持C中的strut 和 union類型。Java支持方法重載。
          ??? 10.?Java已經(jīng)支持C中的enum關(guān)鍵字(SE5.0就支持了)。
          ??? 11.?Java不支持C中的bitfields能力。
          ??? 12.?Java不支持C的typedef。
          ??? 13.?Java不支持C的方法指針。
          ??? 14.?Java支持可變參數(shù)表。?
          ????15,java有?Reflection?,c?沒有
          ???16,java有Annotations,c沒有
          ???17,java有g(shù)enerics,c沒有
          ???16,java有interface,c沒有
          posted on 2007-07-29 13:58 EricWong 閱讀(892) 評論(7)  編輯  收藏 所屬分類: Java

          評論:
          # re: 隨手整理Java與C的不同點及心得 2007-07-29 14:52 | pass86
          不要和C比較,引文這樣不公平,C是面向過程的程序設(shè)計語言。要和C++比較.  回復(fù)  更多評論
            
          # re: 隨手整理Java與C的不同點及心得 2007-07-29 16:33 | dennis
          蠻多有誤的地方

          java怎么沒有全局變量?我們常常定義Globel類來存儲系統(tǒng)的全局性參數(shù)

          java雖然goto是保留字,但是其實通過break label機制也實現(xiàn)類似goto的效果

          java已經(jīng)支持enum關(guān)鍵字

          java已經(jīng)支持可變參數(shù)列表

            回復(fù)  更多評論
            
          # re: 隨手整理Java與C的不同點及心得 2007-07-29 16:34 | dennis
          C語言通過一些庫的支持也是有一定程度的Reflection的  回復(fù)  更多評論
            
          # re: 隨手整理Java與C的不同點及心得 2007-07-29 17:45 | bcims
          @dennis
          感謝dennis,enum在SE5.0就支持了,可變參數(shù)列表同樣也支持,goto的話我上面已經(jīng)講清了,全局變量的話,您是從C方面講的。  回復(fù)  更多評論
            
          # re: 隨手整理Java與C的不同點及心得[未登錄] 2007-07-29 20:41 | roger
          一個是面向?qū)ο蟮模粋€是面向過程的。兩種完全不一樣的東西,拿來比較是很無聊的事情,就像比較男人和女人之間的區(qū)別一樣,沒意思。  回復(fù)  更多評論
            
          # re: 隨手整理Java與C的不同點及心得 2007-07-29 20:45 | dreamstone
          java和c沒有可比性啊,應(yīng)該和java比的是c++或者c#
          c本身不是面向?qū)ο笳Z言,和c比的應(yīng)該是pascal basic這類東西。
            回復(fù)  更多評論
            
          # re: 隨手整理Java與C的不同點及心得 2007-07-30 08:42 | Unmi
          java和c沒有可比性  回復(fù)  更多評論
            
          主站蜘蛛池模板: 临沭县| 邯郸县| 阿荣旗| 蓬莱市| 辛集市| 伊金霍洛旗| 隆德县| 新巴尔虎右旗| 中江县| 伊川县| 淮南市| 新和县| 武胜县| 克什克腾旗| 永清县| 柳江县| 桦南县| 千阳县| 萝北县| 天全县| 孝义市| 广东省| 定襄县| 洛阳市| 辰溪县| 莎车县| 晋城| 闸北区| 绥棱县| 青浦区| 康平县| 淳安县| 濉溪县| 阿拉善右旗| 阿拉善左旗| 凌海市| 乌恰县| 沙洋县| 新巴尔虎左旗| 盖州市| 巴青县|