朋友偶爾問我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沒有