JDK1.8新特性
来源:互联网 发布:php大转盘抽奖源码 编辑:程序博客网 时间:2024/06/09 15:25
JDK1.8新特性
1. Lamnda表达式:
1.1 定义:带有参数变量的表达式,是一段可以传递的代码,可以被执行一次或多次
1.2 格式:(参数)->表达式或方法体
(1) 参数:类似于方法中的形参列表,这里的参数是函数式接口里的参数
(2) ->:可以理解为被用于的意思
(3) 表达式:可以是表达式也可以是代码块,是函数式接口里方法的实现
1.3 函数式接口
(1)功能型接口:Function
Function<T,R>:是对接受一个T类型参数,返回R类型的结果的方法的抽象,通过调用apply()方法进行执行内容
(2)消费型接口:Consumer
Consumer<T>:接收一个参数,没有返回值,通过accept()对参数执行行为
(3)供给型接口:Supplier
Supplier<T>:该接口对应的类型不接受参数,但是提供一个返回值,使用get()方法获取到这个返回值
(4)断言型接口:Predicate
Predicate<T>该接口对应的方法为接收一个参数,返回一个Boolean类型的值,多用于判断与过滤,通过test()执行行为
1.4 Lambda表达式的优点
(1)减少代码冗余,可读性好
(2)与集合类批处理操作结合,实现内部迭代,并充分利用现代多核CPU进行并行计算
1.5 和匿名内部类的区别
(1)在Lambda表达式中,this不是指向Lambda表达式产生的那个对象,而是它的外部对象
(2)Java编译器编译Lambda表达式并将它们转换为类里面的私有函数
1.6 方法引用
某些Lambda表达式里面仅仅是调用了一个已存在的方法,在这种情况下直接通过方法名称引用方法的形式可读性更高些,这种形式就是方法引用
格式:方法引用中::后只能是方法名,不能加();
2. Stream流
2.1 定义:是用函数式编程的方式在集合类上进行复杂操作的工具,和迭代器不同的是,Stream可以并行化操作,借助于Lambda表达式极大的提高了编程效率和可读性
2.1 常用操作
(1) foreach():迭代集合中的元素
(2) collect(tolist()):由Stream里的值生成一个列表,是一个及早求值操作
(3) map():如果有一种函数将一种类型的值转换为另一种类型,map操作就可以使用该函数,将一个流中的值转换成一个新的流
(4) filter():遍历数据并检查其中元素
(5) flatMap():可用多个Stream替换值,然后将多个Stream连接成一个Stream
(6) max()和min():获取Stream中的最大值和最小值
(7) reduce():通过指定的函数把Stream中的多个元素汇聚为一个元素
- jdk1.8 新特性
- jdk1.8新特性
- jdk1.8新特性
- jdk1.8新特性
- JDK1.8-新特性
- JDK1.8新特性
- JDK1.8新特性
- jdk1.8新特性
- JDK1.8新特性
- jdk1.8新特性
- JDK1.8新特性
- JDK1.8新特性
- JDK1.8新特性
- jdk1.8新特性
- JDK1.8新特性
- JDK1.7和JDK1.8新特性
- JDK1.5-JDK1.8的新特性
- Java JDK1.8新特性
- 机器学习经典 PRML 最新 Python 代码实现,附最全 PRML 笔记视频学习资料
- Nginx——8
- Python[问题处理] django-admin.py startproject learning_log .
- 通过有序数组生成平衡搜索二叉树
- SpringMVC的Service互相循环调用错误: org.springframework.beans.factory.BeanCurrentlyInCreationException
- JDK1.8新特性
- 关于ASP.NET和.NET的区别和联系
- C语言字节对齐问题综合
- 大佬口述消息机制:带你用新角度看消息机制
- Java对象锁和类锁全面解析(多线程synchronized关键字)
- HTML-CSS的使用
- 预训练模型
- Oracle数据库 面试题复习
- bower依赖