面試遇到的問題,當時回答的不是很好,再查詢一些資料後,把自己的心得寫下來
定義:泛型是一種特殊的型別,它把指定型別的工作推遲到客戶端**宣告並例項化類或方法的時候進行。
這是泛型的基本定義,泛型可說是自.net 2.0中推出的眾多特性中相當重要的乙個,它解決了原先無法避免的容器操作的裝箱、拆箱問題。
和.net的眾多態別一樣,帶泛型引數的型別同樣是乙個確定的型別,在不被指定的情況下,它直接繼承自syste.ojbect型別,並且可以派生出其他型別。但是,泛型型別還是和普通型別有著一定的區別。通常泛型的型別被稱為開放式型別,.net的機制規定開放式型別不能被例項化,這樣就確保了開放式型別的泛型引數型別在被指定時前,不會被例項化成任何物件(事實上.net也沒辦法進行例項化,因為不確定需要分配多少記憶體給開放式型別)
.net中可以使用 gettype 方法可於程式執行時得知泛型及其型別引數的實際型別,更可以運用反射程式設計。
1、泛型是種佔位符,你可以先分配位置,但不指定物件。等到需要時候根據具體情況再例項化方法。可以製作模板
2、泛型是種容器,例項化泛型類的時候就知道裡面物件型別,取出物件時不需要轉換。
java泛型的解釋
定義了泛型的限定之後,編譯器會在編譯階段對實現了引數化的型別例項進行檢查,例如 arraylistal new arraylist al.add 10 這樣在編譯階段他就會將這個錯誤檢查出來,告訴你add 中的引數應該是string型別的。後來碰到問題如何向引數化型別為string的集合中新增其他型...
關於泛型,什麼是泛型,如何理解泛型
泛型是jdk5中引入的特性,它提供了編譯時型別安全檢測機制,該機制允許在編譯時檢測到非法的型別,就不至於在執行時出現轉換異常,它的本質是引數化型別 即以任何型別 t 作為引數,在使用時可以傳入型別t的具體值 t 也就是將型別由原來的具體型別用引數t表示 即型別引數化 然後在使用 呼叫時傳入具體的型別...
泛型與非泛型的區別及詳細解釋
1 簡介 我們都知道陣列是一組具有相同資料型別的資料的集合,在程式中可以儲存資料,但是陣列有乙個缺點,即當其中的元素初始化後,要在程式中動態的給陣列新增,或刪除某個元素是很困難的。那麼如何解決這個問題?net給我們提供了各種集合物件,如arraylist和hashtable。它們都可以很好的進行元素...