目录

  • 话不多说,直接亮代码
  • 细节讲解
  • Lambda表达式分析

话不多说,直接亮代码

/*** @Author Lambda基础测试演练* @Date 2021/8/10 19:01* @Version 1.0*/public class Test3 {//定义一个接口
interface Te{void  aa();
}//1、定义普通类,实现接口,重写aa方法
class s1 implements Te {@Overridepublic void aa() {System.out.println("我是普通方法重写的aa方法");}
}//使用匿名内部类和Lambda表达式重写接口public static void main(String[] args) {//#1匿名内部类Te te = new Te() {@Overridepublic void aa() {System.out.println("我是匿名内部类中的aa方法");}};//#2使用Lambda表达式Te te1 = ()->{System.out.println("我是lambda表达式中的aa方法 ");};te1.aa();}}

在上面整个代码中,我们分别使用类、匿名内部类和lambda表达式来写的,那么我们把重心方法Lambda表达式上来;
这里主要有三点我们需要记住,那么基础的Lambda表达式就基本上掌握差不多了;
1、Lambda表达式它的出现就是为了更好的实现出接口中的功能,它整体的 代码量是远小于其他方式的调用,虽然这个目前还不算是太明显;
2、Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。
3、确保我们的接口中的方法只有一个,如果有一个以上的方法,那么就不能用Lambda表达式;

细节讲解

看下图

那在我们创建匿名内部类进行方法调用的时候,te=new Te()这些它们是灰色的,te他是对象,我们下面没有调用,但是后面new Te()明显是灰色的,他也不是我们需要调用的对象,那就代表他们可以通过某个办法省略,这个办法就是Lambda表达式

1
1

Lambda表达式分析

我们可以看到下方的Te te1 = ()->,这个就是一个最基础的Lambda表达式,他与我们的匿名内部类有些像,它的大括号之前的nwe变成了()->,其中我们肉眼可见的aa重写也不见了,他直接是在大括号内写入的输出方法 ;
其实我们换种方式理解,Te te1 = ()->,中的()代表的就是重写的aa方法 内的参数,而->则代表了aa方法的运算,整个过程就好比之前的重写,我们在大括号内写入的语句,经过aa方法的运算传递给了变量te,随后te调用重写后的aa方法,最后输出结果

以上只是个人为了以及他的格式和意思而总结的客观理论,仅适用于新手客观的认识学习Lambda表达式,其实它需要经过复杂的源码调用,最终才能输出结果;

关于Lambda表达式的简单理解,以及基础使用,仅限新手相关推荐

  1. Java Lambda表达式的箭头理解总结

    Java Lambda表达式的箭头理解总结 文章目录 Java Lambda表达式的箭头理解总结 一.简单的Lambda的基础知识点: 二.Lambda 表达式示例 1.实现方法没有参数,无返回值的情 ...

  2. lambda表达式的简单应用

    lambda表达式:是Java8中的新特性 Java8中引入Lambda表达式,使得java可以函数式编程,在并发性能上迈出了实质性的一步. 函数式编程:(英语:functional programm ...

  3. php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)

    本篇文章给大家带来的内容是关于Python中lambda表达式的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一:匿名函数的定义 lambda parameter ...

  4. python 用lambda表达式代替简单的函数, 匿名函数

    当一些函数很简单,仅仅只是计算一个表达式的值的时候,就可以使用lambda表达式来代替了. 比如: >>> add = lambda x,,y : x + y >>> ...

  5. Lambda表达式的生动理解以及Java Lambda表达式常见使用场景

    本篇承接上一篇 Java Lambda 表达式快速学习 , 对Lambda 表达式的语法格式进行演化说明, 并对Java 中Lambda表达式的常见使用场景进行说明. Lambda 表达式怎么来的? ...

  6. Db4o结合Linq、Lambda表达式的简单示例

    大多数人接触Db4o的查询,都是从"样本查询"(Query by Example)开始的,这种查询方式简单但不方便,功能和性能也很受局限.以下是引自官方的样本查询示例: // re ...

  7. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  8. Lambda表达式(简单解析)

    Lambda表达式 Lambda表达式其实是JDK8的一个新特性.所谓Lambda表达式指的是应用在单一抽象方法接口环境下的一种简化定义形式,可以用于解决匿名内部类中定义复杂的问题. 我们先来看一段代 ...

  9. Lambda表达式个人的理解,并以Demo分析;

    首先看一下Lambda长什么样子:Func<int,string> = num=> return num.ToString(); 它由三部分组成等于号"="左边为 ...

  10. Lambda表达式在Java 8中的简单应用

    我一直试图在我编写的代码中放入lambda表达式,而这个简单的例子就是相同的结果. 对于那些完全不了解Java中的Lambda表达式的人,我建议他们在进入本文之前先阅读此内容 . 好的,现在您已经熟悉 ...

最新文章

  1. 高性能服务器架构(一):缓冲策略
  2. 网摘--2014年5月12日
  3. CreateSolidBrush
  4. php找出函数定义位置,WordPress如何快速定位PHP函数所在文件位置及代码行号?
  5. mysql 事务 隔离级别_MySQL的四种事务隔离级别
  6. 罗永浩:如果没有特斯拉和马斯克 激动人心的电动车时代不会这么早的到来
  7. Scala paralle
  8. vSphere 6.7的新增功能?我应该升级吗?
  9. [Linux] 内核模块proc使用 实例:统计所有进程的信息
  10. sqlite3常用技巧
  11. js 中堆和栈的应用与理解
  12. oracle 查询判断语句
  13. java用ajax实现多级菜单,ajax + java + jsp 做的二级菜单联动(全)
  14. 关于Mysql以及Sqlyog的下载以及使用记录
  15. Lodop+html+pdf.js 实现web客户端连接的本地打印机直接打印,无需预览
  16. web前端入门到实战:CSS box-sizing属性的正确用法
  17. URL里面携带了#是什么意思
  18. Oracle R12采购接收流程 PR PO RCV AP Payment
  19. 个人Tomcat复习篇
  20. 视觉惯性单目SLAM (五)矩阵微积分

热门文章

  1. 【大云制造】大云运营管理平台V1.4发布——不忘初心,砥砺前行,为了创造无限的价值!...
  2. 【路径规划】基于matlab蚁群算法求解公交车路径规划问题【含Matlab源码 930期】
  3. 【空瓶识别】基于matlab灰度+二值化空瓶检测【含Matlab源码 806期】
  4. 【疫情模型】基于matalb改进的SEIR模型【含Matlab源码 667期】
  5. 【基础教程】基于matlab图像处理(读写+显示+运算+转换+变换+增强+滤波+分析+统计)【含Matlab源码 144期】
  6. 【验证码识别】基于matlab CNN卷积神经网络验证码识别【含Matlab源码 098期】
  7. cnn初学者—从这入门_使用Tensorflow为初学者使用CNN进行简单图像分类
  8. fluent 对电机油冷分析_如何避免发电机过热引起的能源损耗?
  9. python:使用strip()去掉首尾空格
  10. vuex模块化 怎么引用state_vue 组件如何调用 vuex 模块中的getters