最新一看就懂:Java 之 Lamda 写法,带你碾压面试官

总结

在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

(6)箭头后面就是实现方式了,这个同以前代码实现。

拓展示例
示例1

那么,当一个接口的唯一方法涉及多个参数,此时 Lamda 写法又该怎么样呢?

我们不妨创建一个 MyService,里面包含一个带有参数的方法定义:


public  interface MyService {



	public void say(String name);



}



然后我们创建一个 Test 类,并在类里面添加一个该接口为参数的 test() 方法,以及主方法进行测试:

Java 8 以前的写法:


public class Test {



    public static void main(String[] args){

        test(new MyService() {

            @Override

            public void say(String name) {

                System.out.println("hello : " + name);

            }

        });

    }

    

    public static void test(MyService service) {

        service.say("jack");

    } 



}





程序运行结果为如下所示:

在这里插入图片描述

Java 8 Lamda 写法:


public class Test {



    public static void main(String[] args){

        test((name) -> System.out.println("hello : " + name));

    }

    

    public static void test(MyService service) {

        service.say("jack");

    } 



}





运行结果,同样为:

在这里插入图片描述

经过上面两个例子,我们已经证实了,两种写法的运行效果完全是可以等价的,Lamda 写法看起来也更简洁。

另外,当参数只有一个的时候,参数的括号也可以省去不写,例如,上面的 Lamda 写法还可以进一步简写:


test(name -> System.out.println("hello : " + name));



同理,如果接口的方法有多个参数的时候,Lamda 参数括号里也需要传递多个参数。

示例2

我们将接口里面的 say(String name) 方法,增加一个参数 age,改为如下:


public interface MyService {



    public void say(String name, int age);



}



那么对应的方法调用就成为了如下:

Java 8 前写法:


public class Test {



	public static void main(String[] args){

		test(new MyService() {

			@Override

			public void say(String name, int age) {

				System.out.println("hello : " + name + ", I am " + age);

			}

		});

	}

	

	public static void test(MyService service) {

		service.say("jack", 28);

	} 



}



Java 8 Lamda 写法:


public class Test {



	public static void main(String[] args){

		test((name, age) -> System.out.println("hello : " + name + ", I am " + age));

	}

	

	public static void test(MyService service) {

		service.say("jack", 28);

	} 



}



两种写法的输出结果都是:

在这里插入图片描述

可以看到,随着接口方法 say() 里的参数增加,Lamda 参数括号里面的参数也相应增加。

同理,当 Lamda 语句块里面只有一条语句的时候,我们可以通常省略语句块符号{},如上面的 Lamda语句:


test((name, age) -> System.out.println("hello : " + name + ", I am " + age));



但如果涉及多条语句的时候,就需要增加语句块 {}了,比如我们将 name 和 age 分别打印的话,则对应的 Lamda 写法为:


test((name, age) -> {

	System.out.println("My name is"+ name);

	System.out.println("I am "+ age);

});





变量作用域

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

[外链图片转存中…(img-XMiu3aVd-1715658466733)]

[外链图片转存中…(img-TXcwmCqT-1715658466733)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值