更新時間:2022-07-27 11:02:44 來源:動力節點 瀏覽765次
動力節點小編來為大家介紹一下泛型算法與Lambda表達式。
Java泛型的語法定義:
class 類名 <泛型標識,泛型標識,…>{ private 泛型標識1,變量名;常用的泛型標識:T,E,K,V } 里面正常寫法
public class GenericDemo<K> {
//定義數組
private K[] arr;
}
泛型的使用語法:
類名<具體的數據> 對象名 = new 類名<具體的數據類型>()
jdk1.7之后,后邊的<>可以省略不寫
類名<具體的數據> 對象名 = new 類名<>()
泛型總結:
類型參數化,讓類的定義更加通用
泛型不支持基本類型,因為在編譯時,基本類型無法轉換成Object
泛型類在創建對象的時候,如果沒有指定數據類型,將按照Object類型來操作
同一泛型類在邏輯上可以看成是多個不同的類型,但實際是相同的類型
從泛型類派生子類:
子類也是泛型,子類和父類的泛型要一致 (例如:連泛型的類型T要一致,寫的內容相同),
如果父類沒有指明類型,則父類要按照Object類型處理
public class Child<T> extends Parent<T> {
}
子類不是泛型,父類要明確泛型類型,
如果父類沒有指明類型,則父類要按照Object類型處理
泛型接口:
泛型接口的語法定義:interface 接口名<泛型標識1,泛型標識2,…>{ 泛型標識 方法名(); … }
實現類也是泛型,實現類和接口的泛型要一致,如果接口沒有指明類型,則接口要按照Object類型處理
實現類不是泛型,接口要明確泛型接口的數據類型,如果接口沒有指明類型,則接口按照Object類型處理
lambda表達式概念
面向對象的編程中強調,必須通過對象的形式去做事情;函數思想則是盡量忽略對象的復雜寫法,“強調做什么,而不是以什么形式去做”
lambda表達式就是函數思想的體現
lambda表達式就是定義函數式的簡化寫法,而不是函數調用的簡化寫法
lambda表達式格式
三要素:形式參數,箭頭,代碼塊
形如:(形參)->代碼塊
形參如果多個參數,參數之間逗號隔開,如果沒有參數,留空括號,不用留空格
-> 一定的是英文,固定寫法,表示執行
代碼塊:具體要做的事情
使用前提:使用接口:接口當中有且只有一個抽象方法
代碼示例:
package com.lambda;
public class Lambda {
public static void main(String[] args) {
//正常寫法
Mythread mythread = new Mythread();
Thread t = new Thread(mythread);
t.start();
//匿名內部類
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("多線程1就緒了");
}
}).start();
//lambda表達式:創建線程
new Thread(()->{
System.out.println("多線程2就緒了");
}).start();
}
}
class Mythread implements Runnable{
@Override
public void run() {
System.out.println("多線程就緒");
}
}
以上就是關于“泛型算法與Lambda表達式”的介紹,大家如果想了解更多相關知識,不妨來關注一下動力節點的Java在線學習,里面的課程內容從入門到精通,細致全面,很適合沒有基礎的小伙伴學習,相信對大家一定會有所幫助的。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習