Lambda表达式

1.函数式编程思想

相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。

面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情。
函数式编程思想: 只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程 。

2.冗余的Runnable代码

传统写法

 public static void main(String[] args) {
        //创建Runnable接口的实现类对象
        RunnableImpl run = new RunnableImpl();
        //创建Thread类对象,构造方法中传递Runnable接口的实现类
        Thread t = new Thread(run);
        //调用start方法开启新线程,执行run方法
        t.start();
 /*
    创建Runnable接口的实现类,重写run方法,设置线程任务
*/
public class RunnableImpl implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"新的线程创建了");
    }
}

简化一:匿名内部类

 //简化代码,使用匿名内部类,实现多线程程序
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"创建了新线程");
            }
        }).start();

3.Lambda的更优写法

2014年3月Oracle所发布的Java 8(JDK 1.8)中,加入了Lambda表达式的重量级新特性,借助Java 8的全新语法,上述 Runnable 接口的匿名内部类写法可以通过更简单的Lambda表达式达到等效:

//使用lambda表达式,实现多线程
         new Thread(()-> {
            System.out.println(Thread.currentThread().getName() + "新线程创建了");
        }            
        ).start();

核心代码
() -> { System.out.println(“新线程创建了”) }

这段代码和刚才的执行效果是完全一样的,可以在1.8或更高的编译级别下通过。从代码的语义中可以看出:我们启动了一个线程,而线程任务的内容以一种更加简洁的形式被指定。

4.Lambda的标准格式

1.一些参数
2.一个箭头
3.一段代码

Lambda表达式的标准格式为:

(参数类型 参数名称) -> { 代码语句 }

格式说明
1.小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。
2. -> 是新引入的语法格式,代表指向动作。
3. 大括号内的语法与传统方法体要求基本一致
代码演示
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值