1 接口上可定义static和default方法,default方法可以被继承和重写,是一个instance method
2 函数式接口:只有一个抽象方法,FunctionalInterface注解仅做声明和编译检查(多个抽象方法无法通过编译),满足条件即使无此注解依然也是函数式接口
3 Lambda表达式:在函数式接口上使用匿名内部类,(参数1,参数2...) -> {}
无参数(), 一个参数可不用(),单行代码可不用{}, 单行代码带返回值不用return
继续简化:若{}内为将各参数用于调用某个方法,则直接<实例>::<实例方法名> 或 <类>::<类方法名称>
访问局部变量必须为final,编译器帮加final(effective final),正常访问静态变量和实例字段
Optional:封装一个值,可为null,get方法可返回值或抛异常,isPresent()
Stream
生成:of ,generate,iterate, Collection.stream , Collection.parallelStream(获取的是并行Stream,其操作可在多线程上同时执行)
处理:sorted.count.max.filter.limit,skip,forEach
Map也新增了forEach方法