Java8 新特性:
- 什么是Lambda表达式:Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同) 上述的解释比较的抽象 简单的说Lambda 是一个匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)不仅仅是Java 许多种编程语言都引入了 Lambda表达式。
- Lambda表达式的使用:
拷贝小括号() 写死右箭头-> 落地大括号{}
-
Lambda表达式的使用要求:l使用ambda表达式,必须是函数式接口,必须只有一个方法如果接口只有一个方法java默认它为函数式接口。为了正确使用Lambda表达式,需要给接口加个注解:@FunctionalInterface 最最常见的就是Runnable接口 需要注意的是:这个接口中,可以有默认方法,或者是静态方法(在1.8之后)函数式接口中还可以有Object中覆盖的方法,也就是equals方法,hashCode方法等等
-
Lambda表达式的优缺点:
- 优点:Lambda表达式能够让程序员的编程更加高效
- 缺点:代码不易读 增加学习成本(这其实不是Lambda表达式的缺点 是程序员自身的缺点)
-
使用详解:
- 使用方式 (其实上一篇博客中已经使用了Lambda表达式)
([Lambda参数列表,即形参列表]) -> {Lambda体,即方法体}
- 使用方式 (其实上一篇博客中已经使用了Lambda表达式)
-
格式说明:
-
小括号内的语法与传统方法参数列表一致
-
无参数则留空;多个参数则用逗号分隔
-
-> 是新引入的语法格式,代表指向动作。 大括号内的语法与传统方法体要求基本一致
new Thread(()-> { System.out.println("多线程任务执行!")}).start();
-
-
省略规则 在Lambda标准格式的基础上,使用省略写法的规则为:
- 小括号内参数的类型可以省略
- 如果小括号内有且仅有一个参,则小括号可以省略
- 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号
-