1、Lambda 表达式 (把代码当作参数)
//定义了操作接口
public interface GreetingService { void sayMessage(String message);}//声明接口的具体操作GreetingService greetService1 = message -> System.out.println("Hello " + message);//调用接口,使用功能greetService1.sayMessage("java");1、不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误。2、可以直接在 lambda 表达式中访问外层的局部变量3、在 Lambda 表达式当中不允许声明一个与局部变量同名的参数或者局部变量。2、方法的引用 直接引用已有Java类或对象(实例)的方法或构造器 java.util.function.Supplier(用来创建对象的,但是不同于传统的创建对象语法:new)3、默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。 4、新工具 − 新的编译工具 5、Stream API −新添加的Stream API(java.util.stream) Stream(流)是一个来自数据源的元素队列并支持聚合操作 数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。 聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等。 parallelStream()//并行流 stream()//串行流6、Date Time API − 加强对日期与时间的处理。 LocalDateTime ZonedDateTime7、Optional 类,用来解决空指针异常。 Optional 类是一个可以为null的容器对象