请列举 Java 8 的主要新特性,并简要说明每项特性的核心用途。
考察说明
考查候选人对 Java 版本演进中重要特性(Lambda、Stream、Optional、新日期时间 API、接口默认方法等)的理解和掌握程度。
回答思路
- 【回答框架 1】Java 8 最核心的是 Lambda 表达式,它允许将函数作为参数传递,简化匿名内部类的写法,配合函数式接口(如 Predicate、Consumer)使用。
- 【回答框架 2】Stream API 提供声明式处理集合的方式,支持链式操作,可并行流(parallelStream)提升性能,但需注意并行流适用场景。
- 【回答框架 3】Optional 类是用于避免空指针异常的容器对象,提倡显式处理可能为空的情况,但不能完全取代 if-null 检查。
- 【回答框架 4】新日期时间 API(java.time)修复了旧 Date/Calendar 的线程安全和设计问题,提供 LocalDate、LocalTime、Instant 等不可变类。
- 【回答框架 5】接口允许定义默认方法和静态方法,便于在接口中提供默认实现,但需注意多继承冲突和设计规范。
- 【关键点 1】Lambda 表达式配合函数式接口实现匿名函数,简化代码。
- 【关键点 2】Stream API 支持惰性求值、并行处理,但需避免在并行流中使用有状态操作。
- 【关键点 3】Optional 不鼓励作为方法参数,返回类型使用较为合理。
- 【关键点 4】新日期时间 API 线程安全,且支持时区处理。
- 【关键点 5】接口默认方法允许演化,但可能引发菱形问题。
- 【易错点 1】不应误认为 Lambda 就是匿名内部类的语法糖,两者在实现细节上存在差异。
- 【易错点 2】并行流并非总是更快,需考虑任务规模和数据结构。
- 【易错点 3】Optional 不能用于字段,序列化可能存在问题。