1、Lambda
来源:互联网 发布:shell curl post json 编辑:程序博客网 时间:2024/06/05 11:27
一、Lambda概述
lambda表示数学符号“λ”,计算机领域中λ代表“λ演算”,表达了计算机中最基本的概念:“调用”和“置换”。
二、为什么使用Lambda
1、Java语言是面向对象的语言,不能像函数式语言那样嵌套定义方法。
2、Java的匿名内部类只能存在于创建它的线程,不能运行在多线程中,无法充分利用多核的硬件优势。
3、匿名内部类的确定还有:
(1)语法相对复杂。
(2)在调用内部类的上下文中,指引和this的指代容易混淆。
(3)类加载和实例创建语法不可避免。
(4)不能引用外部的非final对象。
(5)不能抽象化控制流程。
三、Lambda语法
1、参数列表"(...)"
2、箭头符号“->”
3、代码块"{...}"
四、Lambda案例一
用lambda简化Runnable接口的实现方式。
package jax.lambda;public class LambdaTest {public static void main(String[] args) {int i=0;new Runnable(){@Overridepublic void run() {//i++; //不能直接修改外部的值,i必须为final才能编译通过System.out.println("匿名内部类实现Runnable接口,i="+i);}}.run();int j=0;Runnable r=()->{//j++; //不能直接修改外部的值,j必须为final才能编译通过System.out.println("使用Lambda实现Runnable接口,j="+j);};r.run();}}
输出:
匿名内部类实现Runnable接口,i=0
使用Lambda实现Runnable接口,j=0
五、Lambda案例二
用lambda实现自定义接口,模拟登陆操作。
package jax.lambda;public class CustomLambdaTest {static interface Action{void execute(String content);}public static void main(String[] args) {new Action(){@Overridepublic void execute(String content) {System.out.println(content);}}.execute("匿名内部类实现方式,执行登陆操作");Action login=(String content)->{System.out.println(content);};login.execute("lambda实现方式,执行登陆操作");}}
输出:
匿名内部类实现方式,执行登陆操作
lambda实现方式,执行登陆操作
0 0
- 1、Lambda
- 5.5.1 Lambda 函数
- Lambda表达式(1)
- 5.5.1 Lambda 函数
- Java8的lambda(1)
- Lambda表达式1
- java8 lambda表达式 (1)
- Java Lambda(1)
- lambda表达式学习1
- C# Lambda表达式 1
- JAVA8 Lambda(1)
- Lambda学习(1)
- Lambda
- lambda
- lambda
- lambda
- Lambda
- lambda
- 85. Maximal Rectangle
- Bootstrap Input file 上传文件大小限制设定
- [swift学习之十二]二维码创建练习
- 浅谈Java代理机制
- 《深入理解mybatis原理(二)》 Mybatis关联查询问题
- 1、Lambda
- java 单例模式
- 动态存储分配及深复制 —字符串的复制2
- C# 对象序列化与反序列化
- where in 和where=
- 环信自学 实现通话功能心得—Eclipse篇
- 代码取得storyboard中的viewcontroller
- 10 11周 补充 项目二(1)
- openerp odoo 直接操作数据库的示例