整理的部分Java和C#不同點

來源:互聯網
上載者:User

標籤:object   java   

C#有統一的類型系統,所有的類型包括原始類型(int,bool,short,long等類型)都繼承於Object類。

Java略不同,它的原始類型不是繼承於Object,每個原始類型都有對應的包裹類(繼承於Object),比如int的包裹類Integer

 

C#有不帶正負號的整數,uint、ulong、ushort

Java沒有

 

C#沒有高精度的decimal。

Java中有BigDecimal

 

C#支援複數。Complex 結構

Java中沒有

 

C#中有實值型別。通過使用strutct關鍵字,可以定義結構體,這種類型在傳遞的時候,是按值傳遞,而不是按引用傳遞。

Java中只有原始類型。

 

C#中有可空類型,Nullable。

Java中只有包裹類。

 

C#中允許有指標。

Java中無指標。

 

C#中,枚舉類型繼承於Enum類型,是實值型別的一個派生物。

Java中,枚舉類型是一個class,它的值類的一個執行個體。

 

C#中有委託

Java中沒有

 

C#中有延遲綁定的類型,dynamic

Java中沒有

 

C#和Java中都有強引用和弱引用。

但是Java中還有一種軟引用和虛引用Phantom reference。

軟引用和弱引用類似,對象都是可達的,但仍然被GC回收。不同點在於,弱引用只要GC開始,就會被回收,而軟引用只用當JVM記憶體空間不足的時候才會被回收。

虛引用的get方法永遠返回null,可以用虛引用來引用我們感興趣的對象,在GC回收的時候,會把該對象加到referenceQueue中。通過觀察referenceQueue,可以知道對象是否被回收了。(此時我們可以在gc回收之前做一些其他事情,比如記錄些日誌什麼的)

 

C#中支援二維矩形數組,單數組 int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };或者 int[,] a = { { 0, 0 }, { 1, 2 }, { 2, 4 }, { 3, 6 }, { 4, 8 } };

Java中不支援,只支援數組的數組。

 

C#中裝箱操作時候隱式的,拆箱操作時顯式的。

Java中裝箱拆箱都是隱式的。

 

C#中 成員變數修飾符 public, internal, protected, private, protected internal

Java中 public, package, protected, private

 

C#類中,繼承的方法,預設為new,必須顯示override才表示覆蓋。

Java中預設表示覆蓋。

 

C#中的內部類都是類層級的,可以隨時在外部執行個體化。

Java中內部類必須是static的才是類層級的,才能在外部被執行個體化。

 

C#支援部分類別

Java不支援

 

C#中,枚舉類型不能實現介面。

Java支援枚舉類型實現介面。

 

C#支援運算子多載

Java不支援。

 

C#方法支援out,ref引用參數

Java不支援。

 

C#不支援常量參數

Java支援,final。標記final的參數,在方法中不能被修改。

    public short getValue(final short index) {

        if (index < values.length) {

            index++;    //出錯,index的值無法修改.

            return values[index];

        }

        else return -1;

    }

 

C#支援具名引數,選擇性參數,分部方法,條件方法

Java不支援。

 

C#的泛型在運行時都是一個新的類型。

Java的泛型為偽泛型,在運行時被擦除。

整理的部分Java和C#不同點

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.