這是在各種Java泛型面試中,一開場你就會被問到的問題中的一個,主要集中在初級和中級面試中:
1:什麼是泛型?
泛型就是廣泛的類型,也是一種數據類型,而這種數據類型可以是任意類型,編寫過程中當中不能確定類型,創建對象時必須指定具體類型,不指定也可以,但是會出現一些錯誤。
泛型是編譯器行為,只能在編譯期有效,如果能夠跨過編譯器,那麼泛型就沒有任何意義了。
2、泛型類
怎麼定義泛型類?
在類後面加<>,<>中可以編寫任意長度任意字元,不能是數值。(一般用26個大寫英文字母表示)
泛型類 <具體類型> 變數名 = new 泛型類<>();
3.怎麼使用泛型
有以下幾種使用場景以及放在那種位置
泛型只能定義引用數據類型,而不能使用基本數據類型
泛型類、泛型方法、泛型介面、泛型通配符
例如:作用在類上時( public class Animal <E> { E pet; } ) , 泛型跟在類後邊,可以指定用了泛型的類內部的 pet 的類型。
作用在對象上時( Animal<Dog> str = new Animal<Dog>(); ) , 泛型跟在類後邊 , 使得對象類的的 pet 屬性為 Dog類型。
② JAVA中的泛型用法一種: <T> 返回值用法。
1、對於泛型方法來說,是可以接收不同類型的參數,比如下圖,使用泛型來操作List集合,然後向List中添加一條數據,看是否可以添加成功,創建泛型方法如圖所示。