1.switch C#一直支持String類型 Java直到1.7才支持
2.C#里String有Length屬性 Java里是Length方法
3.C#中修飾class的sealed效果與Java的final相當(有待細細研究),Java沒有sealed修飾符,C#沒有final
4.C#中的方法參數支持ref/out(引用傳遞),Java沒有
5.特別注意:在String對象中,C#里的"=="是比較值相等,和equals是等效的;而Java中"=="是表示引用相等,equals表示值相等
//Java public static void main(String [] args) { String s1 = "12"; String s2 = new String("12"); String s3 = "1"; String s4 = "2"; String s5 = s3 + s4; String s6 = "1" + "2"; System.out.println(s1==s2); System.out.println(s1==s5); }
輸出均為false
//C# static void Main(string[] args) { String s1 = "12"; String s3 = "1"; String s4 = "2"; String s5 = s3 + s4; //String s6 = "1" + "2"; Console.Write(s1.Equals(s5)); Console.Write(s1==s5); } 輸出均為true
6.C#中的接口不能帶有屬性成員,而Java可以;在C#中顯式地對接口方法使用public也是非法的,而Java卻可以。
7.C#中無法被繼承的類:sealed類和static類,Java中是final類
8.Java中String類有charat方法,C#沒有
System.out.println(s.charAt(5));
9.Java中的泛型在編譯過程中會被擦除類型,再被調用時才做類型的轉換,這相對於C#中產生了新類型的泛型而言,是一種“偽泛型”
10.C#中並沒有HashMap,Java中沒有Dictionary
11.關於override,C#中必須是有vitual、abstract、override修飾的方法才可以被override,Java則沒有此限制;此外,Java中可以省略 但基於@Override的對方法名檢查作用以及代碼的可讀性考慮 我們一般會寫上 而在C#中override是不可省略的
12.在異常處理中,C# 沒有throws的用法
如有錯誤請指正