Java泛型 VS C#泛型 (偽泛型 VS 真泛型)

來源:互聯網
上載者:User

標籤:強制   小結   引用   font   擷取   應用   檔案類型   儲存   參數   

一、泛型的本質

泛型是參數化型別的應用,操作的資料類型不限定於特定類型,可以根據實際需要設定不同的資料類型,以實現代碼複用。

二、Java泛型

Java 泛型是Java1.5新增的特性,JVM並不支援。

實現原理:Java原始碼裡面類型提供實現泛型功能,而編譯後Class檔案類型就變成原生類型(即類型被擦除掉),而在引用處插入強制類型轉換以實現JVM對泛型的支援。本質是Java泛型只是Java提供的一個文法糖,底層

的JVM並不提供支援,Java中的泛型屬於偽泛型。

但是編譯後的位元組碼通過反射後還是可以擷取到泛型的真實類型資訊,因為泛型擦除並沒有把儲存泛型中繼資料擦除掉。

 

三、C#泛型

C# 泛型是2.0C#和CLR中新增的特性,CLR支援。

實現原理:C#無論語言層面還是CLR都提供對泛型的支援,所以C#泛型編譯後MSIL泛型都是切實存在的,類型不沒有變成原生類型,而是通過類型膨脹實現,在運行期產生,自己的虛方法表和類型資料.C#泛型屬於

 

四、小結

Java泛型 VS C#泛型 (偽泛型 VS 真泛型)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.