JAVASE學習筆記之泛型

2021-08-21 22:12:02 字數 1537 閱讀 4107

* 建立集合同時指定集合儲存的資料型別

* 指定資料型別時,要麼指定左邊,要麼兩邊都執行相同的資料型別

* 在jdk1.7之前,必須兩邊都要指定並且要相同的資料型別

* 在jdk1.7之後,指定左邊即可

* 在泛型中沒有多型的概念

* 將執行時錯誤轉換為編譯期錯誤,增強了集合的安全性。

* 省去了資料型別強制轉換的麻煩。

* jdk1.5新特性。

* 泛型可以使用在方法上,類上,介面上。

* 泛型變數可以理解為是某種資料型別的佔位符。

* 泛型變數還可以理解為是某種資料型別的變數。

* 泛型變數的命名規則:只要是合法的識別符號就可以,一般使用乙個大寫字母表示

常用的泛型變數名有:t type e element k key v value

* 在定義方法時定義了泛型變數的方法就是泛型方法

* 修飾符 返回值型別 方法名(引數列表){}

* 泛型變數的具體資料型別是由呼叫者呼叫方法時傳參決定。

* 泛型變數的具體資料型別不能是基本資料型別,如果要使用基本資料型別則需要使用對應的包裝類型別。

* 在定義類的同時定義了泛型變數的類。

泛型類的定義格式

* class 類名

* 泛型類泛型變數的具體資料型別是在建立該類物件時由建立者指定。

* 如果建立泛型類物件時沒有指定泛型變數的具體資料型別,則預設是object

* 靜態方法不能使用類上定義的泛型變數,如果該方法中要使用泛型變數,則需要將該定義為泛型方法

* 在定義介面的同時定義了泛型變數的介面

泛型介面的定義格式

* inte***ce 介面名

* 方式1:實現介面的同時指定泛型變數的具體資料型別。(不夠靈活)

* 方式2:實現介面的時不指定泛型變數的具體資料型別,那麼此時需要將該實現類定義為泛型類,由使用者建立實現類物件時指定泛型變數的資料型別。(推薦使用)

? : 泛型萬用字元,可以匹配任意型別的資料。

? 一般不會單獨使用,一般會結合泛型的上下限使用。

? 不能用來定義泛型方法,泛型類,泛型介面

? 不能在方法體中當成一種資料型別使用

泛型上限

? extends number:可以接收number或number子類型別的資料

泛型下限

? super integer : 可以接收integer或integer父類型別的資料

Java學習筆記之泛型 三 泛型類

package com.collection.genericity 泛型類 需求 編寫乙個陣列的工具類 泛型類的定義格式 class 類名 宣告自定義泛型 泛型類要注意的事項 1 在類上自定義泛型的具體資料型別是在使用該類建立物件的時候確定的 2 如果已經在乙個類上宣告了自定義泛型,但是使用該類建立...

C 學習筆記之泛型

拆箱和裝箱從值型別轉換為引用型別為裝箱,把引用型別轉換為值型別為拆箱 裝箱和拆箱很容易使用,但是效能損失比較大,尤其是遍歷許多項的時候。list不使用物件,在使用時定義型別 var list new list list.add 44 no boxing int item list 0 mo unbo...

學習筆記 泛型

object型別引數有2個問題 1 裝箱拆箱,效能損耗 傳入乙個int值 棧 object又在堆裡面,如果把int傳遞進來,就會把值從棧裡面copy到堆裡 使用的時候,又需要用物件值,又會copy到棧 拆箱 2 型別安全問題,可能會有,因為傳遞的物件是沒有限制的 泛型方法與普通方法效能一致,還能乙個...