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

泛型在編譯時還是運行時

發布時間: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語言中的泛型實現方法稱為類型擦除,基於這種方法實現的泛型被稱為偽泛型。

閱讀全文

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

熱點內容
穿越火線更新怎麼開新伺服器 瀏覽:315
腹部超聲pdf 瀏覽:920
解壓縮全能王能解壓7z文件嗎 瀏覽:248
python目錄比較 瀏覽:645
公司程序員戴假發 瀏覽:345
oracle查看資料庫狀態命令 瀏覽:840
查汽車app叫什麼 瀏覽:747
經濟學英文pdf下載 瀏覽:798
python列表順序 瀏覽:698
雲南邊緣計算伺服器雲伺服器 瀏覽:105
小公司如何選擇伺服器 瀏覽:791
android指紋識別驅動 瀏覽:447
榮耀手機的系統有方舟編譯器嗎 瀏覽:629
單片機應用的論文 瀏覽:474
什麼app可以查網購的真偽 瀏覽:444
培訓班的程序員怎麼樣找工作 瀏覽:813
codeblocks編譯器位數 瀏覽:447
bios加密怎麼設置 瀏覽:350
台電u盤加密大師損壞 瀏覽:850
secure網站加密 瀏覽:124