朋友偶爾問我C語言方面的東西,自己從來沒有系統學過,有些問題一知半解,到最近幾天拿著高中買的數據結構<C語言版>看,似乎愛上了C,程序貴在相通,萬變不離其宗,上手很快。趁現在坐在客廳里吹風,有本本在,隨手在網上找些資料整理一下JAVA和C的區別,但又很矛盾,如果單從語言來比較是沒有什么太多意義的,一個類似寄生蟲一樣的東西,一個是生下來就可以跑的家伙,但我今天的BLOG還是要寫,以此充數吧!至少也是我的心得。

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