導航:首頁 > 源碼編譯 > 泛型在編譯時還是運行時

泛型在編譯時還是運行時

發布時間:2024-09-25 01:02:13

java泛型類和泛型方法

1、什麼是泛型?
泛型簡言之就是類型參數化,不指定類型,運行時傳入類型。
如果業務需求有沒有可能不指定類型?有沒有可能在運行時才知道具體的類型是什麼?
所以,就出現了泛型。

public class Container<K, V> {
private K key;
private V value;
public Container(K k, V v) {
key = k;
value = v;
}
public K getKey() {
return key;
}
public void setKey(K key) {
this.key = key;
}
public V getValue() {
return value;
}
public void setValue(V value) {
this.value = value;
}
}

編譯期,是無法知道K和V具體是什麼類型,只有在運行時才會真正根據類型來構造和分配內存。這就是泛型。

㈡ java中什麼是泛型,怎麼用泛型

最簡單的運用:List<String> list = new ArrayList<String>();
這個是什麼意思?
意思就是list只裝String類型的數據,別的,裝不進去
然後你就會覺得這個好像有點封裝的意思,比如LIst<Student>,封裝學生類
所以,所謂泛型就是廣泛的數據類型,你可以把它理解成封裝

㈢ c#泛型和java泛型的區別

泛型技術在C#和Java之中的使用方式看似相同,但實現上卻有著根本性的分歧,C#裡面泛型無論在程序源碼中、編譯後的IL中(Intermediate Language,中間語言,這時候泛型是一個佔位符)或是運行期的CLR中都是切實存在的,List<int>與List<String>就是兩個不同的類型,它們在系統運行期生成,有自己的虛方法表和類型數據,這種實現稱為類型膨脹,基於這種方法實現的泛型被稱為真實泛型。
Java語言中的泛型則不一樣,它只在程序源碼中存在,在編譯後的位元組碼文件中,就已經被替換為原來的原始類型(Raw Type,也稱為裸類型)了,並且在相應的地方插入了強制轉型代碼,因此對於運行期的Java語言來說,ArrayList<int>與ArrayList<String>就是同一個類。所以說泛型技術實際上是Java語言的一顆語法糖,Java語言中的泛型實現方法稱為類型擦除,基於這種方法實現的泛型被稱為偽泛型。

閱讀全文

與泛型在編譯時還是運行時相關的資料

熱點內容
求算術平方根演算法設計思想 瀏覽:363
核彈打擊加密文件 瀏覽:820
虛擬機安卓9怎麼安裝toos 瀏覽:578
安卓怎麼下載joox 瀏覽:912
pdf天空 瀏覽:763
php讀取二維數組 瀏覽:348
php編譯安裝參數 瀏覽:278
其實壓力沒那麼大程序員圖片 瀏覽:416
如何查看app內訪問的網頁地址 瀏覽:757
安卓手機信號旁邊的漢字怎麼設置 瀏覽:304
nrf2401單片機 瀏覽:713
清除電腦文件夾垃圾的方法 瀏覽:226
天河程序員 瀏覽:192
成都程序員公積金 瀏覽:768
程序員為什麼叫程序猿 瀏覽:484
加西貝拉壓縮機價格 瀏覽:788
海信聚好看如何用u盤安裝app 瀏覽:71
加密狗怎麼寫的 瀏覽:560
安卓手機如何能調最大聲音 瀏覽:668
編程開發工具大全 瀏覽:572