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
原创粉丝点击