1、闭包,将函数作为参数
-> lamda表达式
引用外部变量时,只能引用final修饰的外部变量
方法定义的参数不能与外部参数名一样
2、使用 :: 进行方法引用
类名::new 构造方法
类名:: static_method 静态方法引用
类名 :: method 调用类任意对象的方法
对象 :: method 调用指定对象的方法
3、functional Interface 函数式接口:
有且只有一个抽象方法,可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 lambda 表达式。(用函数式接口声明一个对象,用lambda来实现)
4、使用default定义接口的默认方法
如果继承多个接口,不同接口中有同名方法,可以使用 接口名.super.方法名 调用指定接口的方法。
接口可以定义static方法
5、流Stream
(1)map映射元素对应结果
(2)forEach
(3)limit 限制流数量
(4)sorted排序
(5)parallelStream() 并行流
(6)Collectors 类实现了很多归约操作,例如将流转换成集合和聚合元素。Collectors 可用于返回列表或字符串:
6、optional类
允许为null的容器,提供很多方法,比如对空值的判断
7、nashorn 是javascript引擎,能在java中执行javascript代码
也可在js中引用java类
8、日期API
LocalDate、LocalTime、LocalDateTime