C#和Java在語法上的差異(原創,持續更新中)


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的用法
 
 
 
如有錯誤請指正


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM