要通过面试,Lamdba要了解多少?

不想你离开。 提交于 2020-03-02 12:40:08

Jdk8已经不算个什么新玩意了,但总体来说,JDK8也算是个大的改动,增加了很多新玩意,比如Lamdba、StreamApi、新的时间处理方式、还有接口方面的新改动。其中比较新颖的要算Lamdba呢,lamdba那怪异的语法,初略的看上去还真有点莫名其妙,那么到底lamdba是什么玩意呢?

匿名委托(匿名内部类)

我并没打算百度一下详细的讲解lamdba的概念是什么,先大概了解他有什么用,对我们有什么好处,然后再由你决定是否在以后的工作中用上lamdba吧。

从哪里开始讲呢?从我们工作组经常用的匿名委托谈起……

匿名委托是什么玩意呢?其实就是我们经常会用到的“匿名内部类”

举个栗子,我们精彩用的线程,创建线程有好几种方法,那么用传统的。

  new Thread(new Runnable() {

            @Override

            public void run() {

                System.out.println("嗯,没错,这是个匿名内部类");

            }

        }).start();

上面的写法对于你来说应该再熟悉不过了,如果连这都不熟悉,那么请客官还是先打好java的基础吧,可以加群523916260,我们再细讨论。

好像有点偏题了,我们继续说。

仔细看上面,上面那段代码是从IDEA里面截图的,细看我们发现上面有段灰色的波浪线,我们把鼠标放到那灰色的上面,会发现。

翻译一下:匿名内部类可以用Lamdba表达式代替。。

那么怎么用lamdba表达式代替呢?

神奇的Lamdba

Lamdba的语法我先不说,先把上面的“匿名内部类”替换了再说吧

new Thread(()->System.out.println("嗯,没错,这是个匿名内部类")).start();

和上面的匿名内部类的代码进行比较,是不是发现代码少了好多行,而且在IDEA这工具里面还有了个lamdba的符号。

嗯,我确认这就是lamdba表达式呢,那么你应该可以看出lamdba的显著优点“让代码更加简洁”。

白话Lamdba的定义

好吧,看了上面简单的案例,现在我问你个问题,假设我现在是你的面试官,而你来面试的时候,我问你个问题。

“Lamdba你听说过吗?请说下Lamdba是什么?” 你改怎么回答?

官方的解释,请自己去百度,我把Lamdba的解释如下

Lambda是一个匿名函数,即没有函数名的函数(简化了匿名委托的使用,让你让代码更加简洁)

Lamdba是个匿名函数应该可以理解了吧,通过前面改写Runnable就能发现,他实际就是实现Runnable接口的另外一种写法(只是有点怪怪的)

更重要是红色字体标注的内容,它简化了代码,嗯,我想这一点你也应该能直观的感受到,没错吧,如果面试官问你的时候,你能不能把上面这个案例给复述出来了呢?

通过这篇文章,我想你已经明白了lamdba是什么玩意,那么lamdba的语法到底是怎么样的呢?

我现在会写匿名内部类,又怎么根据写的匿名内部类改成成Lamdba表达式呢?

欲知下文请听下回分析,另外如果想看其他的文章,可以加群或是留言,群号在前面已经出现。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!