JDK1.8新特性
- JDk1.8的优化
- 数据的流式编程
- lambda表达式
- 函数式接口
- 匿名内部类
jdk1.8新特性----------一:JDK的优化:
1.执行速度更快;
2.代码更少(Lambda表达式);
3.强大Stream API;
4.便于并行;
5.最大化减少空指针异常(OPtional类)。
JDK1.8新增了非常多的特性,本专题主要讨论以下几个:
jdk1.8新特性----------二:数据的流式编程:
1.流的简介:
流不是数据的元素,也不是数据的结构,不负责数据的存储,可以作为一个迭代器,可以访问集合中的每一个元素,不可循环。
2.重要的接口:
steam接口的方法可以归为两类:
方法的返回值还是steam:(Transformaction算子)
方法的返回值不是steam:(action算子)
(tips:所有的Transformaction必须和action一块才能执行)
jdk1.8新特性---------三:Lambda表达式:
1.Lambda允许把函数作为一个方法的参数(函数作为参数传递到方法中)。
2.Lambda的定义:特殊的匿名内部类,语法更简洁
3.基本语法:
事例:
4.lambda表达式的先决条件:
*目标方法的参数是一个接口
*接口中只能有一个抽象方法,这个抽象方法不是object里的方法
5.特别注意:
1.编译器能自己推断数据类型,所以数据类型在lambda中可以省略
2.如果只有一个参数,小括号可以省略
3.如果只有一条输出语句,大括号也可以省略
4.如果有返回值,且有一条输出语句,return可以省略
(tip:lambda引入了一个新的操作符:->,->将表达式分成了两部分,左侧表示参数列表,右侧{}内是方法体)
jdk1.8新特性------------四:函数式接口
定义:如果一个接口只有一种抽象方法,那么这个接口叫做函数式接口,函数式接口可以使用lambda表达式,lambda表达式只能匹配到这个抽象方法中。
1.检测是否为函数式接口:
@functionallnterface后跟接口可判断其是否为函数式接口;
2.语法:
3.常见的函数式接口:
jdk1.8新特性------------五:匿名内部类
1.什么是匿名内部类:
简单的说,就是不知道不知道名字的类
2.匿名内部类的使用场景:
匿名内部类适合只使用一次的类,简单的说:创建一个匿名内部类,只需要使用一次即可。
3.构造语法: