你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

JDK 1.8 新特性

2021/11/20 18:27:48

参照文档:https://www.runoob.com/java/java8-new-features.html

1. Lambda 表达式

什么是Lambda表达式
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
特性:
可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

语法:() -> {};
() : 表示接口中的抽象方法的参数列表
-> : 表示lambda 隔符
{} : 表示方法体实现代码

2.函数式接口

“函数式接口”是指仅仅只包含一个抽象方法的接口,每一个该类型的***lambda表达式***都会被匹配到这个抽象方法。

3.方法引用

方法引用指的是通过方法的名字来指向一个方法。

  1. 对象::实例方法名
  2. 类::静态方法名
  3. 类::实例方法名
  4. 类::new // 创建新的引用

构造器引用:它的语法是Class::new,或者更一般的Class< T >::new实例如下:
final Car car = Car.create( Car::new );
final List< Car > cars = Arrays.asList( car );

静态方法引用:它的语法是Class::static_method,实例如下:
cars.forEach( Car::collide );

特定类的任意对象的方法引用:它的语法是Class::method实例如下:
cars.forEach( Car::repair );

特定对象的方法引用:它的语法是instance::method实例如下:
final Car police = Car.create( Car::new );
cars.forEach( police::follow );

4.Stream

什么是 Stream?
Stream(流)是一个来自数据源的元素队列并支持聚合操作

元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。
数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。
聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等。

注意:
1.Stream 自己不会存储元素。
2.Stream 不会改变源对象。相反,他们会返回一个持有结果的新的Stream。
3.Stream 操作时延迟执行的。这意味着他们会等到需要的结果的时候才会执行。

Stream操作的三个步骤
1.创建Stream
一个数据源(如:集合、数组),获取一个流
2.中间操作
一个中间操作链,对数据源的数据进行处理
3.终止操作(终端操作)
一个终止操作,执行中间操作链,并产生结果

创建Stream
在这里插入图片描述
在这里插入图片描述

5.时间API