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

泛型在編譯時還是運行時

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

閱讀全文

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

熱點內容
oracle可以編譯存儲嗎 瀏覽:472
機械男和女程序員創業 瀏覽:799
自己怎麼製作軟體app 瀏覽:212
javajson字元串轉java對象 瀏覽:228
必修一數學PDF 瀏覽:775
javascriptphpjsp 瀏覽:811
深圳一程序員退房完整版 瀏覽:294
後台管理app哪個好 瀏覽:766
加密鎖無模塊什麼意思 瀏覽:22
加密國度英文 瀏覽:20
科沃斯用了app怎麼使用按鍵 瀏覽:663
爬蟲編譯器價格 瀏覽:885
支付寶視頻app會員自動扣費怎麼關 瀏覽:230
單片機和wifi模塊 瀏覽:725
python倒序二進制代碼 瀏覽:362
廣東程序員離職 瀏覽:586
golang核心編程 瀏覽:170
中小學計演算法則 瀏覽:85
無職轉生哪個app能看 瀏覽:580
夏夢迪在哪個app 瀏覽:107