关于Lambda表达式的简单理解,以及基础使用,仅限新手
目录
- 话不多说,直接亮代码
- 细节讲解
- 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表达式的简单理解,以及基础使用,仅限新手相关推荐
- Java Lambda表达式的箭头理解总结
Java Lambda表达式的箭头理解总结 文章目录 Java Lambda表达式的箭头理解总结 一.简单的Lambda的基础知识点: 二.Lambda 表达式示例 1.实现方法没有参数,无返回值的情 ...
- lambda表达式的简单应用
lambda表达式:是Java8中的新特性 Java8中引入Lambda表达式,使得java可以函数式编程,在并发性能上迈出了实质性的一步. 函数式编程:(英语:functional programm ...
- php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)
本篇文章给大家带来的内容是关于Python中lambda表达式的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一:匿名函数的定义 lambda parameter ...
- python 用lambda表达式代替简单的函数, 匿名函数
当一些函数很简单,仅仅只是计算一个表达式的值的时候,就可以使用lambda表达式来代替了. 比如: >>> add = lambda x,,y : x + y >>> ...
- Lambda表达式的生动理解以及Java Lambda表达式常见使用场景
本篇承接上一篇 Java Lambda 表达式快速学习 , 对Lambda 表达式的语法格式进行演化说明, 并对Java 中Lambda表达式的常见使用场景进行说明. Lambda 表达式怎么来的? ...
- Db4o结合Linq、Lambda表达式的简单示例
大多数人接触Db4o的查询,都是从"样本查询"(Query by Example)开始的,这种查询方式简单但不方便,功能和性能也很受局限.以下是引自官方的样本查询示例: // re ...
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
- Lambda表达式(简单解析)
Lambda表达式 Lambda表达式其实是JDK8的一个新特性.所谓Lambda表达式指的是应用在单一抽象方法接口环境下的一种简化定义形式,可以用于解决匿名内部类中定义复杂的问题. 我们先来看一段代 ...
- Lambda表达式个人的理解,并以Demo分析;
首先看一下Lambda长什么样子:Func<int,string> = num=> return num.ToString(); 它由三部分组成等于号"="左边为 ...
- Lambda表达式在Java 8中的简单应用
我一直试图在我编写的代码中放入lambda表达式,而这个简单的例子就是相同的结果. 对于那些完全不了解Java中的Lambda表达式的人,我建议他们在进入本文之前先阅读此内容 . 好的,现在您已经熟悉 ...
最新文章
- 高性能服务器架构(一):缓冲策略
- 网摘--2014年5月12日
- CreateSolidBrush
- php找出函数定义位置,WordPress如何快速定位PHP函数所在文件位置及代码行号?
- mysql 事务 隔离级别_MySQL的四种事务隔离级别
- 罗永浩:如果没有特斯拉和马斯克 激动人心的电动车时代不会这么早的到来
- Scala paralle
- vSphere 6.7的新增功能?我应该升级吗?
- [Linux] 内核模块proc使用 实例:统计所有进程的信息
- sqlite3常用技巧
- js 中堆和栈的应用与理解
- oracle 查询判断语句
- java用ajax实现多级菜单,ajax + java + jsp 做的二级菜单联动(全)
- 关于Mysql以及Sqlyog的下载以及使用记录
- Lodop+html+pdf.js 实现web客户端连接的本地打印机直接打印,无需预览
- web前端入门到实战:CSS box-sizing属性的正确用法
- URL里面携带了#是什么意思
- Oracle R12采购接收流程 PR PO RCV AP Payment
- 个人Tomcat复习篇
- 视觉惯性单目SLAM (五)矩阵微积分
热门文章
- 【大云制造】大云运营管理平台V1.4发布——不忘初心,砥砺前行,为了创造无限的价值!...
- 【路径规划】基于matlab蚁群算法求解公交车路径规划问题【含Matlab源码 930期】
- 【空瓶识别】基于matlab灰度+二值化空瓶检测【含Matlab源码 806期】
- 【疫情模型】基于matalb改进的SEIR模型【含Matlab源码 667期】
- 【基础教程】基于matlab图像处理(读写+显示+运算+转换+变换+增强+滤波+分析+统计)【含Matlab源码 144期】
- 【验证码识别】基于matlab CNN卷积神经网络验证码识别【含Matlab源码 098期】
- cnn初学者—从这入门_使用Tensorflow为初学者使用CNN进行简单图像分类
- fluent 对电机油冷分析_如何避免发电机过热引起的能源损耗?
- python:使用strip()去掉首尾空格
- vuex模块化 怎么引用state_vue 组件如何调用 vuex 模块中的getters