詳解Java8中的Lambda表達(dá)式
Lambda是什么
Lambda表達(dá)式,也可稱為閉包,是java8的新特性,作用是取代大部分內(nèi)部類,優(yōu)化java代碼結(jié)構(gòu),讓代碼變得更加簡潔緊湊。
Lambda的基本語法
(expression)->expression 或 (expression)->{statements;}
Lambda最重要特點(diǎn)
用()->{}代碼塊替代匿名內(nèi)部類
//(param)->expression;//(param)->statment;//(param)->{statments};//類型聲明 MathOperation addition = (int a, int b) -> a + b; //不用類型聲明 MathOperation subtraction = (a, b) -> a - b;
例如:用lambda表達(dá)式實(shí)現(xiàn)Runable接口
//java8之前 new Thread(new Runable() { @Override public void run() { System.out.println("hello"); } }).start(); //java8之后 new Thread( ()->System.out.println("hello") ).start();
代替comparator接口內(nèi)部類
//java8之前 Comparator<Person> comparator = new Comparator(){ public int compare(Person p1, Person p2) { if (p1.getAge() > p2.getAge()) return -1; ..... } } //java8之后 Comparator<Person> comparator = (Person p1, Person p2) -> { if (p1.getAge() > p2.getAge()) return -1; ..... }
是不是代碼變得清爽了許多
Lambda表達(dá)式和匿名類的對比
1、this關(guān)鍵字:匿名類的this關(guān)鍵字指向匿名類,而Lambda表達(dá)式的關(guān)鍵字指向包圍Lambda表達(dá)式的類;
2、編譯方式:Java編譯器將Lambda表達(dá)式編譯成類的私有方法,使用了java7的invokedynamic字節(jié)碼指令來動態(tài)綁定這個方法;
最后說一句,Lambda表達(dá)式和Java8的新特性Stream()一起使用會更香哦!
以上就是詳解Java8中的Lambda表達(dá)式的詳細(xì)內(nèi)容,更多關(guān)于Java8中的Lambda表達(dá)式的資料請關(guān)注腳本之家其它相關(guān)文章!
- JAVA8 lambda表達(dá)式權(quán)威教程
- Java8新特性之Lambda表達(dá)式的使用
- Java8的Lambda表達(dá)式你真的會嗎
- Java8新特性:Lambda表達(dá)式之方法引用詳解
- java8 forEach結(jié)合Lambda表達(dá)式遍歷 List操作
- Java8 Lambda表達(dá)式模板方法實(shí)現(xiàn)解析
- Java8 lambda表達(dá)式2種常用方法代碼解析
- Java8 用Lambda表達(dá)式給List集合排序的實(shí)現(xiàn)
- Java8中Lambda表達(dá)式使用和Stream API詳解
- Java8與Scala中的Lambda表達(dá)式深入講解
- java8學(xué)習(xí)教程之lambda表達(dá)式的使用方法
- 簡單易懂的java8新特性之lambda表達(dá)式知識總結(jié)
相關(guān)文章
SpringBoot實(shí)現(xiàn)自定義事件的方法詳解
這篇文章將用實(shí)例來和大家介紹一下如何在SpringBoot中自定義事件來使用觀察者模式。文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)SpringBoot有一定的幫助,需要的可以參考一下2022-06-06jdk7 中HashMap的知識點(diǎn)總結(jié)
HashMap的原理是老生常談了,不作仔細(xì)解說。一句話概括為HashMap是一個散列表,它存儲的內(nèi)容是鍵值對(key-value)映射。這篇文章主要總結(jié)了關(guān)于jdk7 中HashMap的知識點(diǎn),需要的朋友可以參考借鑒,一起來看看吧。2017-01-01SpringCloud超詳細(xì)講解微服務(wù)網(wǎng)關(guān)Gateway
這篇文章主要介紹了SpringCloud Gateway微服務(wù)網(wǎng)關(guān),負(fù)載均衡,熔斷和限流,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07IDEA集成Docker實(shí)現(xiàn)快捷部署的操作步驟
這篇文章主要介紹了IDEA集成Docker實(shí)現(xiàn)快捷部署的操作步驟,通過靈活利用這一功能,開發(fā)人員可以更快速地開發(fā)、調(diào)試和部署應(yīng)用程序,從而提高開發(fā)工作的效率和質(zhì)量,需要的朋友可以參考下2024-06-06關(guān)于MVC與SpringMVC的介紹、區(qū)別、執(zhí)行流程
這篇文章主要介紹了關(guān)于MVC與SpringMVC的介紹、區(qū)別、執(zhí)行流程,MVC框架的主要目標(biāo)是將應(yīng)用程序的業(yè)務(wù)邏輯(Model)與用戶界面(View)分離開來,從而提高應(yīng)用程序的可維護(hù)性和可擴(kuò)展性,需要的朋友可以參考下2023-05-05