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

泛型在編譯時還是運行時

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

閱讀全文

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

熱點內容
我的世界js手動解壓 瀏覽:27
嚮往的生活什麼小說app 瀏覽:1002
程序員可以兼職賣茶葉嗎 瀏覽:145
pdf怎麼免費轉換成word文件 瀏覽:941
為什麼企業都有自己的app 瀏覽:522
北京網校系統源碼 瀏覽:542
java密碼驗證正則 瀏覽:285
Google演算法面試 瀏覽:380
什麼app有個車字 瀏覽:499
Android資料庫建立 瀏覽:123
php前端java後端架構 瀏覽:38
javasocket框架 瀏覽:246
html轉化為pdf 瀏覽:355
泛型在編譯時還是運行時 瀏覽:671
圖片爬蟲源碼共享 瀏覽:383
全站源碼加數據怎麼導入 瀏覽:272
androidscrollview彈性 瀏覽:860
網路加密方法 瀏覽:67
pdf色彩管理 瀏覽:305
javabase64編碼解碼 瀏覽:538