導航:首頁 > 編程語言 > java泛型詳解

java泛型詳解

發布時間:2024-09-18 04:29:11

1. java 中<t>是什麼意思,

JAVA 中<t>是泛型的意思。

意思是Tree這個類裡面需要用到另外一個類,但是又不能確定要用到的那個類的具體類型,所以暫時用T來代替。

當具體的程序知道要用到的那個類型是什麼的時候就用那個類型來代替T,例如需要實例化一個Tree類,需要用到的那個類是String,那麼就可以這么來實例化Tree<String>()。

(1)java泛型詳解擴展閱讀:

定義分類

泛型的定義主要有以下兩種:

1、在程序編碼中一些包含類型參數的類型,也就是說泛型的參數只可以代表類,不能代表個別對象。(這是當今較常見的定義)

2、在程序編碼中一些包含參數的類。其參數可以代表類或對象等等。(人們大多把這稱作模板)不論使用哪個定義,泛型的參數在真正使用泛型時都必須作出指明。

一些強類型編程語言支持泛型,其主要目的是加強類型安全及減少類轉換的次數,但一些支持泛型的編程語言只能達到部分目的。

2. java中泛型是什麼意思,作用是什麼

java 泛型是java SE 1.5的新特性,泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。這種參數類型可以用在類、介面和方法的創建中,分別稱為泛型類、泛型介面、泛型方法。
泛型(Generic type 或者 generics)是對 Java 語言的類型系統的一種擴展,以支持創建可以按類型進行參數化的類。可以把類型參數看作是使用參數化類型時指定的類型的一個佔位符,就像方法的形式參數是運行時傳遞的值的佔位符一樣。
可以在集合框架(Collection framework)中看到泛型的動機。例如,Map 類允許您向一個 Map 添加任意類的對象,即使最常見的情況是在給定映射(map)中保存某個特定類型(比如 String)的對象。
因為 Map.get() 被定義為返回 Object,所以一般必須將 Map.get() 的結果強制類型轉換為期望的類型,如下面的代碼所示:

Map m = new HashMap();
m.put("key", "blarg");
String s = (String) m.get("key");

要讓程序通過編譯,必須將 get() 的結果強制類型轉換為 String,並且希望結果真的是一個 String。但是有可能某人已經在該映射中保存了不是 String 的東西,這樣的話,上面的代碼將會拋出 ClassCastException。
理想情況下,您可能會得出這樣一個觀點,即 m 是一個 Map,它將 String 鍵映射到 String 值。這可以讓您消除代碼中的強制類型轉換,同時獲得一個附加的類型檢查層,該檢查層可以防止有人將錯誤類型的鍵或值保存在集合中。這就是泛型所做的工作。

泛型的好處
Java 語言中引入泛型是一個較大的功能增強。不僅語言、類型系統和編譯器有了較大的變化,以支持泛型,而且類庫也進行了大翻修,所以許多重要的類,比如集合框架,都已經成為泛型化的了。
這帶來了很多好處:
1,類型安全。 泛型的主要目標是提高 Java 程序的類型安全。通過知道使用泛型定義的變數的類型限制,編譯器可以在一個高得多的程度上驗證類型假設。沒有泛型,這些假設就只存在於程序員的頭腦中(或者如果幸運的話,還存在於代碼注釋中)。
2,消除強制類型轉換。 泛型的一個附帶好處是,消除源代碼中的許多強制類型轉換。這使得代碼更加可讀,並且減少了出錯機會。
3,潛在的性能收益。 泛型為較大的優化帶來可能。在泛型的初始實現中,編譯器將強制類型轉換(沒有泛型的話,程序員會指定這些強制類型轉換)插入生成的位元組碼中。但是更多類型信息可用於編譯器這一事實,為未來版本的 JVM 的優化帶來可能。由於泛型的實現方式,支持泛型(幾乎)不需要 JVM 或類文件更改。所有工作都在編譯器中完成,編譯器生成類似於沒有泛型(和強制類型轉換)時所寫的代碼,只是更能確保類型安全而已。

Java語言引入泛型的好處是安全簡單。泛型的好處是在編譯的時候檢查類型安全,並且所有的強制轉換都是自動和隱式的,提高代碼的重用率。
泛型在使用中還有一些規則和限制:
1、泛型的類型參數只能是類類型(包括自定義類),不能是簡單類型。
2、同一種泛型可以對應多個版本(因為參數類型是不確定的),不同版本的泛型類實例是不兼容的。
3、泛型的類型參數可以有多個。
4、泛型的參數類型可以使用extends語句,例如<T extends superclass>。習慣上成為「有界類型」。
5、泛型的參數類型還可以是通配符類型。例如Class<?> classType = Class.forName(Java.lang.String);
泛 型還有介面、方法等等,內容很多,需要花費一番功夫才能理解掌握並熟練應用。在此給出我曾經了解泛型時候寫出的兩個例子(根據看的印象寫的),實現同樣的 功能,一個使用了泛型,一個沒有使用,通過對比,可以很快學會泛型的應用,學會這個基本上學會了泛型70%的內容。

3. java中什麼是泛型,怎麼用泛型

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

4. 你真的了解JAVA中的泛型E、T、K、V嗎

Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制允許開發者在編譯時檢測到非法的類型。泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。

但是如果換成其他的字母代替 T ,在可讀性上可能會弱一些。通常情況下,T,E,K,V,?是這樣約定的:?表示不確定的 java 類型。T (type) 表示具體的一個java類型。K V (key value) 分別代表java鍵值中的Key Value。E (element) 代表Element。

5. java中什麼叫泛型

泛就是廣泛,泛指,型是數據類型. 在java中為了方便多種數據通用一個結構而引入了這個概念.
比如 class A<E> {}, 那麼E就是一個泛型,它可以替換為任意類型.
class A<E> { E obj; }
在使用時, A<String>相當於定義了class A {String obj;}. A<Integer>相當於定義了class A{Integer obj;}
使用比如A<String> astr = new A<String>(); 那麼astr.obj就是一個String

6. java中泛型的使用

泛型可以避免強制類型轉換,設定集合對象中存儲的對象類型。
比如List<String> list = new ArrayList<String>();
那在這個list中,只能存儲字元串對象。

閱讀全文

與java泛型詳解相關的資料

熱點內容
超市伺服器啟動不了怎麼辦 瀏覽:688
阿里巴巴前端編程測驗 瀏覽:497
計量設備評估方法演算法 瀏覽:514
怎麼局部美白app 瀏覽:13
查單片機波特率 瀏覽:153
qtmake命令 瀏覽:728
unityso加密 瀏覽:936
cpu有加密無法更換 瀏覽:68
dos查詢文件列表命令 瀏覽:224
學python爬蟲需要什麼基礎知識 瀏覽:543
更改電腦策略命令 瀏覽:261
linuxc入門到精通pdf 瀏覽:92
伺服器安裝錯誤什麼原因 瀏覽:197
怎麼在麥克風添加app 瀏覽:93
安卓平板電腦閃退有什麼軟體修復 瀏覽:915
schnorr是公鑰密碼演算法嗎 瀏覽:454
微擎商城模塊源碼 瀏覽:119
金融伺服器是干什麼的 瀏覽:22
揭陽陀螺世界源碼 瀏覽:180
次梁加密長度怎麼規定的 瀏覽:240