由於工作和之前學習的原因,我需要同時使用Java和C#兩門語言。這幾年,我也一直在使用J2EE平台和.NET平台做開發。說起C#和Java這兩門語言(文法,資料類型 等),個人以為,大概有90%以上的相似,甚至可以認為幾乎一樣。但是在工作中,我也發現了一些細微的差別,而且很多時候我常常會搞混一些小細節。
例如:
在Java中定義字串,通常使用“String”(首字母大寫)去定義,而在C#中,一般使用string(首字母小寫)去定義。我經常同時使用Microsoft Visual Studio 和Eclipse同時開發時,經常把“字串類型”的大小寫搞混淆,呵呵。
再就是,Java中定義Integer類型,而C#中沒有這個文法,但他們想要描述的其實都差不多,只是文法上的表現形式不同罷了。
常量聲明:Java 為此而使用 final 關鍵字,而 C# 使用關鍵字 const 或 readonly。
C# 提供了在 Java 中可用的所有資料類型,並且增加了對無符號數和新的 128 位高精度浮點類型的支援。
在 Java 中,對於每個基礎資料型別 (Elementary Data Type),核心類庫都提供了一個封裝類來將其表示為 Java 對象。例如,Integer 類封裝 int資料類型,而 Double 類封裝 double資料類型。
而在 C# 中,所有的基礎資料型別 (Elementary Data Type)都是 System 命名空間中的對象。對於每個C#資料類型,都提供一個簡稱或別名。例如,int 是 System.Int32 的簡稱,而 double 是 System.Double 的簡寫形式。因為 C# 將所有的基礎資料型別 (Elementary Data Type)都表示為對象,所以按照基本C#資料類型來調用對象方法是可能的。例如:
int i=10; Console.WriteLine(i.ToString());
還有在Java中使用泛型集合List,通常這樣去定義(使用C#的那種方式去定義,會編譯不通過):
List<int> list = new ArrayList<int>();
而在C#中使用泛型集合List,必須這樣去定義,如果使用Java中的那種方式,則編譯不通過。
List<int> list = new List<int>();
上面描述的一些小例子,是比較典型的。而且大都是和文法,資料類型等相關的。由於本人水平有限,以及時間的關係,對於那些更細節及更深入的內容(比如:為什麼必須這樣去定義......),就暫時不細說了。後續我也會不斷的整理,深入的研究,並更新。
本文只是拋磚引玉,希望讀者能夠用心去體會,熱心的朋友也可以一起研究、總結,整理供大家一起學習並分享。