Jdk8已经不算个什么新玩意了,但整体来讲,JDK8也算是个大的改动,增长了不少新玩意,好比Lamdba、StreamApi、新的时间处理方式、还有接口方面的新改动。其中比较新颖的要算Lamdba呢,lamdba那怪异的语法,初略的看上去还真有点莫名其妙,那么到底lamdba是什么玩意呢?java
我并没打算百度一下详细的讲解lamdba的概念是什么,先大概了解他有什么用,对咱们有什么好处,而后再由你决定是否在之后的工做中用上lamdba吧。面试
从哪里开始讲呢?从咱们工做组常常用的匿名委托谈起……ide
匿名委托是什么玩意呢?其实就是咱们常常会用到的“匿名内部类”函数
举个栗子,咱们精彩用的线程,建立线程有好几种方法,那么用传统的。工具
new Thread(new Runnable() {字体
@Overridespa
public void run() {.net
System.out.println("嗯,没错,这是个匿名内部类");线程
}翻译
}).start();
上面的写法对于你来讲应该再熟悉不过了,若是连这都不熟悉,那么请客官仍是先打好java的基础吧,能够加群523916260,咱们再细讨论。
好像有点偏题了,咱们继续说。
仔细看上面,上面那段代码是从IDEA里面截图的,细看咱们发现上面有段灰色的波浪线,咱们把鼠标放到那灰色的上面,会发现。
翻译一下:匿名内部类能够用Lamdba表达式代替。。
那么怎么用lamdba表达式代替呢?
Lamdba的语法我先不说,先把上面的“匿名内部类”替换了再说吧
new Thread(()->System.out.println("嗯,没错,这是个匿名内部类")).start();
和上面的匿名内部类的代码进行比较,是否是发现代码少了好多行,并且在IDEA这工具里面还有了个lamdba的符号。
嗯,我确认这就是lamdba表达式呢,那么你应该能够看出lamdba的显著优势“让代码更加简洁”。
好吧,看了上面简单的案例,如今我问你个问题,假设我如今是你的面试官,而你来面试的时候,我问你个问题。
“Lamdba你据说过吗?请说下Lamdba是什么?” 你改怎么回答?
官方的解释,请本身去百度,我把Lamdba的解释以下
Lambda是一个匿名函数,即没有函数名的函数(简化了匿名委托的使用,让你让代码更加简洁)
Lamdba是个匿名函数应该能够理解了吧,经过前面改写Runnable就能发现,他实际就是实现Runnable接口的另一种写法(只是有点怪怪的)
更重要是红色字体标注的内容,它简化了代码,嗯,我想这一点你也应该能直观的感觉到,没错吧,若是面试官问你的时候,你能不能把上面这个案例给复述出来了呢?
经过这篇文章,我想你已经明白了lamdba是什么玩意,那么lamdba的语法究竟是怎么样的呢?
我如今会写匿名内部类,又怎么根据写的匿名内部类改为成Lamdba表达式呢?
欲知下文请听下回分析,另外若是想看其余的文章,能够加群或是留言,群号在前面已经出现。