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

泛型在編譯時還是運行時

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

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

熱點內容
李叔同pdf 瀏覽:332
信息通信加密協議 瀏覽:77
原子物理楊福家pdf 瀏覽:776
文件夾加密教程 瀏覽:158
php自定義函數返回值 瀏覽:962
和python比較像的單詞 瀏覽:499
日記本怎麼做app 瀏覽:699
在文件夾搜嗶哩嗶哩 瀏覽:350
php中怎樣設置列印表單大小 瀏覽:384
安卓怎麼試屏幕是不是原裝 瀏覽:934
怎麼查最低戰力地區安卓 瀏覽:134
安卓手機如何添加底部小白條 瀏覽:827
螺桿壓縮機的容量指的是什麼 瀏覽:782
微信掃碼app後怎麼顯示在桌面 瀏覽:135
java載入類的過程 瀏覽:874
怎麼用sdk開發包更改app 瀏覽:997
usb給單片機供電 瀏覽:21
入門經典第4版pdf 瀏覽:258
latex編譯成pdf難嗎 瀏覽:800
昆明計算機編程 瀏覽:250