Lamda表达式

1、λ 希腊字母表中排序第十一位的字母,英语名称为 Lamda
2、避免匿名内部类定义过多
3、可以让你的代码看起来很简洁
4、去掉了一堆没有意义的代码,留下核心的逻辑
3、其实质属于函数式编程的概念

(params)-> expression[表达式]
(params) -> statement[语句]
(params) -> {statements}

a -> System.out.println("i like lamda-->"+a)

new Thread (()->System.out.println(“多线程学习。。。。”)).start();

怎么理解

1、理解Functional interface(函数式接口)是学习java8 lamda表达式的关键所在。

2、函数式接口的定义:

  • 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
public interface Runnable{public abstract void run();
}
  • 对于函数式接口,我们可以通过lamda表达式来创建该接口的对象

代码推导λ表达式

package com.haiyang.lamda;public class TestLamda01 {//3、静态内部类,同样实现ILike接口static class Like2 implements ILike{@Overridepublic void lamda() {System.out.println("i like lamda2");}}public static void main(String[] args) {ILike like = new Like();like.lamda();like = new Like2();like.lamda();//4、局部内部类class Like3 implements ILike{@Overridepublic void lamda() {System.out.println("i like lamda3");}}like = new Like3();like.lamda();//5、匿名内部类,没有类的名称。必须借助接口或者父类like = new ILike() {@Overridepublic void lamda() {System.out.println("i like lamda4");}};like.lamda();//6、lamda表达式like = ()->{System.out.println("i like lamda5");};like.lamda();}
}//1、定义一个只有一个抽象方法的接口
interface ILike{abstract void lamda();
}//2、实现类
class Like implements ILike{@Overridepublic void lamda() {System.out.println("i like lamda1");}
}

输出:

带一个参数的Lamda简化

package com.haiyang.lamda;public class TestLamda02 {public static void main(String[] args) {ILive live = null;//Lamda简化live = (int a)->{System.out.println("I live you"+a);};live.live(1);//Lamda简化参数类型live = (a)->{System.out.println("I live you"+a);};live.live(2);//Lamda简化括号live = a->{System.out.println("I live you"+a);};live.live(3);//Lamda简化花括号(只有一条语句时)live = a->System.out.println("I live you"+a);live.live(4);}}interface ILive{abstract void live(int a);
}

输出:

带多个参数的Lamda简化


package com.haiyang.lamda;public class TestLamda02 {public static void main(String[] args) {ILive live = null;//Lamda简化live = (int a,int b)->{System.out.println("I live you"+a+b);};live.live(1,1);//Lamda简化参数类型(要去掉就要都去掉)live = (a,b)->{System.out.println("I live you"+a+b);};live.live(2,2);//Lamda简化花括号(只有一个语句时)live = (a,b)->System.out.println("I live you"+a+b);live.live(3,3);}}interface ILive{abstract void live(int a,int b);
}

输出:

Lamda表达式详解相关推荐

  1. java拉姆达表达式事例,Java Lambda表达式详解和实例

    简介 Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体( ...

  2. java lambda表达式详解_Java8新特性Lambda表达式详解

    课程目标: 通过本课程的学习,详细掌握Java8新特性之Lambda表达式: 适用人群:有Java基础的开发人员: 课程概述:从Java 8出现以来lambda是最重要的特性之一,它可以让我们用简洁流 ...

  3. cron表达式详解 Elastic-Job名次解释

    #1.cron:cron表达式,用于配置作业触发时间 #2.shardingTotalCount:作业分片总数 #3.shardingItemParameters:分片序列号和参数用等号分隔,多个键值 ...

  4. SpringBoot使用AOP,PointCut表达式详解以及使用

    SpringBoot使用AOP,PointCut表达式详解以及使用 1.相关注解 2.PointCut 表达式详解 2.1 execution: 2.1 within: 2.3. this: 2.4. ...

  5. pyzabbix 删除触发器_zabbix设置邮件报警, Zabbix常用Key值, zabbix触发器表达式详解, zabbix制作自己模板...

    zabbix设置邮件报警 方法一:说明此方法,会产生中文乱码问题 第一步:首先安装mailx组件并配置好能够通过三方邮箱发送邮件 yum -y install mailx 然后编辑mailx的配置文件 ...

  6. Spring定时器corn表达式详解

    1.结构 Spring定时器corn表达式详解 2.各字段的含义 字段 允许值 允许的特殊字符 秒 0~59 - * / 分 0~59 - * / 小时 0~23 - * / 日期 1~31 - * ...

  7. Cron表达式详解和表达式的验证

    Cron表达式详解和表达式的验证 本篇不算原创,因为主要内容来自网上的博客,所以给出我参考文章的链接. 本文cron表达式详解的大部分内容参考了[cron表达式详解]和Quartz使用总结.Cron表 ...

  8. Quartz学习之Cron表达式详解

    Quartz学习之Cron表达式详解 一.cron表达式结构 **二.各字段的含义** 解释: 注意要点: 三.示例 一.cron表达式结构 cron表达式从左到右(用空格隔开):**秒 分 小时 月 ...

  9. SpringBoot的AOP中PointCut表达式详解以及使用

    首先,在pom.xml中添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifa ...

最新文章

  1. 当Swin Transformer遇上DCN,清华可变形注意力Transformer模型优于多数ViT
  2. 【junit】junit4单元测试eclipse
  3. 校园春色关不住,怎奈何唯有花枝俏,不见赏花人?
  4. js的oop方式和this指针问题
  5. Java自动化测试框架-07 - TestNG之Factory篇 - (详细教程)
  6. sql学习指南_SQL格式功能的全面指南
  7. UVALive 3211 Now or Later (2-SAT)
  8. jenkins(六):Jenkins节点管理
  9. 快速将 gif 图转成 jpg 图片
  10. 中文手写数据集训练识别
  11. 学员管理系统(完整版附带源码)
  12. mysql mtq_第十六节:Mysql中的关键字
  13. Linux关闭防火墙
  14. 解决GD32F105休眠后无法唤醒的问题
  15. 交易猫跳转APP+后台管理
  16. 游戏服务器需要什么配置?
  17. (三)拜占庭将军问题
  18. oracle分区注意点,ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项
  19. 搞定Markdown中的图片,一劳永逸的方法!
  20. 如何刻录VCD防盗光盘

热门文章

  1. 代码之外:写作是倒逼成长的最佳方式
  2. 缺失值可视化Python工具库:missingno
  3. python如何提高for循环效率_如何提高python的遍历效率?
  4. Unity3D相机控制
  5. MYSQL escape用法
  6. python爬虫代理
  7. 通过内网穿透实现外网数据库与内网数据库互相访问
  8. 华为鸿蒙概念机990,华为P50 Pro概念机大曝光:120Hz+鸿蒙OS+麒麟9000!
  9. 分手后请记得10句话
  10. golang设计模式——代理模式