今天又一次接触到了Lambda表达式,之前的博客只知道其形不明白其意,这次终于了解比较深刻了。总而言之Lambda表达式就是用来简化代码的,是JDK8的新特性,不用Lambda表达式一样可以写,只是稍微麻烦一点。
问题一:Lambda怎么读?
答:就是我们数学里面的那个符号拉姆达,读成la mu da。也就是希腊字母的第十一个。
问题二:Lambda表达式可以在什么情况下使用?
答:在一个类实现了一个只有一个方法的接口的情况下可以使用,理解了这句话也就差不多理解了Lambda表达式。比如我之前遇到的情况是这样的代码:

Thread t1 = new Thread(()->{for(char c:aI) {System.out.print(c);LockSupport.unpark(t2);LockSupport.park();}

也就是在多线程里面首先遇到了Lambda表达式。一开始纠结于Thread这个类,其实Lambda表达式与这个类没有关系,有关系的是Runnable这个借口,将上面代码还原成不简化的情况也许就能更好的理解Lambda表达式了:

Thread t1 = new Thread(new Runnable(){@Overridepublic void run() {for(char c:aI) {System.out.print(c);LockSupport.unpark(t2);LockSupport.park();}  }});

我们知道Runnable接口只有run()一个方法,所以上面的代码可以通过Lambda表达式简化,这下是不是理解了Lambda表达式真正的用法。至于再深入了解其简化规则,网上很多资料,自行去查找吧。

JAVA学习——Lambda表达式是干什么用的?相关推荐

  1. 10个Java 8 Lambda表达式经典示例

    Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表 达式,它将允许我们将行为传到函数里.在J ...

  2. 深入浅出 Java 8 Lambda 表达式

    摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等.本文系 OneAPM 工程师编译整理. Java 是一流的面向对象语言,除了部分简 ...

  3. Java 8 Lambda表达式10个示例【存】

    PS:不能完全参考文章的代码,请参考这个文件http://files.cnblogs.com/files/AIThink/Test01.zip 在Java 8之前,如果想将行为传入函数,仅有的选择就是 ...

  4. Java中Lambda表达式和stream的使用

    Java中Lambda表达式和stream的使用 转自 [*https://www.cnblogs.com/franson-2016/p/5593080.html*] 简介 (译者注:虽然看着很先进, ...

  5. Java中Lambda表达式使用及详解

    Java中Lambda表达式使用及详解 前言 一.Lambda表达式的简介 Lambda表达式(闭包):java8的新特性,lambda运行将函数作为一个方法的参数,也就是函数作为参数传递到方法中.使 ...

  6. Java 8 Lambda 表达式详解

    版权声明:本文由吴仙杰创作整理,转载请注明出处:https://segmentfault.com/a/1190000009186509 1. 引言 在 Java 8 以前,若我们想要把某些功能传递给某 ...

  7. Java 8 Lambda表达式-接口实现

    Java 8 Lambda表达式在只有一个方法的接口实现代码编写中,可以起到简化作用: (argument list) -> body 具体看Runnable接口的例子 public class ...

  8. 这是一个有趣的问题,Java 8 Lambda 表达式被编译成了什么?

    在了解了Java 8 Lambda的一些基本概念和应用后, 我们会有这样的一个问题: Lambda表达式被编译成了什么? 这是一个有趣的问题,涉及到JDK的具体的实现.本文将介绍OpenJDK对Lam ...

  9. Java 8 Lambda 表达式被编译成了什么?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取个gui 在了解了Java 8 Lambda的一些基本概念和应用后, 我们会 ...

最新文章

  1. CSS实用方法 —— 三角形的编写
  2. 数据不够怎么训练深度学习模型?不妨试试迁移学习 ——重用神经网络的结构2...
  3. android byte[] 转string 好多问号_java程序员面试遇到string题如何不凉?
  4. mysql 异常处理实例
  5. Python---udp绑定信息以及网络通信过程
  6. sqlserver2008登录sa失败
  7. html三列布局源码,HTML三列布局 - 黄柳淞的个人页面 - OSCHINA - 中文开源技术交流社区...
  8. 论述类文本知识框架_高考语文“论述类文本阅读”:三步走,拿满分
  9. C++工作笔记-C++代码实现接口的概念
  10. 计算机组成与体系结构之Flynn分类法
  11. IDEA各种颜色代表什么
  12. java中人民币的符号怎么打_打印机打印人民币符号¥
  13. JS代码:当前日期时分秒加30分钟
  14. linux命令行看图工具,六个鲜为人知的超酷Unix/Linux命令
  15. STM32MP157高性能微处理器产品介绍
  16. 蓄电池与超级电容混合储能并网matlab/simulink仿真模型,混合储能采用低通滤波器进行功率分配,可有效抑制功率波动
  17. matlab在电磁波中的应用,Matlab在电磁场与电磁波学习中的应用
  18. 【ra3mod】3dsmax9 安装的各类问题
  19. Window对象简介
  20. 世行深圳TOD试点项目顺利通过半年评审

热门文章

  1. 微信小程序音频的使用:wx.createInnerAudioContext的使用
  2. 创建anaconda虚拟环境步骤
  3. 小程序 input自动聚焦唤起键盘
  4. 德威控股在港交所招股书失效:2021年度利润大增,由杨时家族控股
  5. pandas的is in和not in
  6. 数据链路层-1 什么是数据链路层和工作原理
  7. 【转】ARM GIC中断系列(二):gicv2架构基础
  8. linux系统分区支持ntfs吗,如何使Linux支持NTFS分区
  9. vm装linux不能上网 系统,VM 安装Linux后,以前的系统无法上网
  10. 2021年终总结——拾起好习惯,让自己变得更加优秀