面试官:说一下Java8的新特性
目录
回答如下:
一 Lambda表达式与函数式接口
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
使用 Lambda 表达式可以使代码变的更加简洁紧凑。
使用方法详见:https://www.runoob.com/java/java8-lambda-expressions.html
Lambda的设计者们为了让现有的功能与Lambda表达式良好兼容,考虑了很多方法,于是产生了函数接口这个概念。函数接口指的是只有一个函数的接口,这样的接口可以隐式转换为Lambda表达式。java.lang.Runnable和java.util.concurrent.Callable是函数式接口的最佳例子。在实践中,函数式接口非常脆弱:只要某个开发者在该接口中添加一个函数,则该接口就不再是函数式接口进而导致编译失败。为了克服这种代码层面的脆弱性,并显式说明某个接口是函数式接口,Java 8 提供了一个特殊的注解@FunctionalInterface(Java 库中的所有相关接口都已经带有这个注解了)
二 接口的默认方法与静态方法
三 方法引用
四 重复注释
五 扩展注解的支持
六 Stream
七 Optional类
八 Date/Time API
九 Nashorn JavaScript引擎
十 Base64
参考:https://www.cnblogs.com/onetwo/p/8526374.html
https://www.cnblogs.com/pkufork/p/java_8.html
https://www.runoob.com/java/java8-new-features.html