Java8新特性

一 . Lambda表达式又称闭包,允许将函数作为参数进行传递,不需要声明参数类型。

 Lambda表达式的语法格式为(  parameters  ) -->  expression   或  (  parameters   )  ---> {   statements;  }

Lambda表达式是在匿名内部类的基础上发展而来的,使得表达更加简洁,速度更快

 

 

 

二 默认方法和静态方法

Java8后接口可以静态方法(用static关键字修饰的方法)和默认方法(指的是用default关键字修饰的方法)

 

 

 

三 方法引用  

 使用操作符 : :方法名和对象或类的名字分开

  

 

 

 compare的源码,比较两个数的大小,相等为0,大于为1,小于为-1,所以返回的是0

 

 

 

 

 

 

 

四  函数式接口指的是有且只有一个抽象方法的接口

函数式接口主要有以下几种

 

Function<T,R>:函数型接口

源码中有四个方法

 

 

 

 

 举个例子

 

 

 

Predicate:断言型接口

源码中有五个方法

 

 

 

 

 

 

 

 

Consumer:消费型接口

源码只有两个方法

 

 

 

 

 

 

Supplier:提供者(生产者)型接口

 源码中只有一个方法

 

 其实HashMap中也用到了函数接口

 

五 Stream 

把真正的函数式编程风格引入到Java中。 

 

 在Java8中有两个方法来生成流

1. stream() ->为集合创建串行流

 

 

2.parallelStream() ->为集合创建并行流

 

 

 

六 Optional类(用来解决空指针异常)

 首先看看Optional类的部分源码

 

 

1.Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象

2.Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测

3.Optional 类的引入很好的解决空指针异常

 

 

posted @ 2022-06-21 23:22  luoshen-luo  阅读(356)  评论(0编辑  收藏  举报