【大白话说Java面试题】【Java基础篇】第25题:JDK1.8的新特性有哪些
第25题JDK1.8的新特性有哪些回答JDK1.8是一个重要的版本更新引入了许多实用的新特性以下是其中的核心内容1. 接口支持默认方法和静态方法背景在JDK1.8之前接口只能包含抽象方法。如果需要在接口中添加方法则所有实现类都需要同步修改这会导致兼容性问题。新特性使用default关键字为接口方法提供默认实现。使用static关键字为接口添加静态方法。代码示例以下代码展示了接口默认方法的使用interfaceMyInterface{defaultvoiddefaultMethod(){System.out.println(This is a default method);}staticvoidstaticMethod(){System.out.println(This is a static method);}}classMyClassimplementsMyInterface{}publicclassMain{publicstaticvoidmain(String[]args){MyClassobjnewMyClass();obj.defaultMethod();// 调用默认方法MyInterface.staticMethod();// 调用静态方法}}2. Lambda表达式定义Lambda表达式是一种简洁的方式用于表示匿名函数允许把函数作为参数传递给其他方法。语法(参数列表) - { 方法体 }应用场景常用于简化集合操作如forEach、线程创建等场景。代码示例以下代码展示了Lambda表达式的使用importjava.util.Arrays;importjava.util.List;publicclassMain{publicstaticvoidmain(String[]args){ListStringnamesArrays.asList(Alice,Bob,Charlie);// 使用Lambda表达式遍历集合names.forEach(name-System.out.println(name));}}3. 新的日期时间API背景JDK1.8之前的日期时间API如Date和Calendar存在线程安全问题且使用不便。新特性引入了java.time包提供了更强大、更易用的日期时间类如LocalDate、LocalTime和LocalDateTime。代码示例以下代码展示了新的日期时间API的使用importjava.time.LocalDate;importjava.time.LocalDateTime;publicclassMain{publicstaticvoidmain(String[]args){LocalDatetodayLocalDate.now();// 获取当前日期LocalDateTimenowLocalDateTime.now();// 获取当前日期和时间System.out.println(Today: today);System.out.println(Now: now);}}4. Stream API定义Stream是JDK1.8新增的一个流式处理框架用于对集合进行高效的操作如过滤、映射、排序等。特点支持链式调用代码简洁优雅。提供并行流parallelStream提升性能。代码示例以下代码展示了Stream API的使用importjava.util.Arrays;importjava.util.List;publicclassMain{publicstaticvoidmain(String[]args){ListIntegernumbersArrays.asList(1,2,3,4,5);// 使用Stream API过滤偶数并求和intsumnumbers.stream().filter(n-n%20).mapToInt(Integer::intValue).sum();System.out.println(Sum of even numbers: sum);// 输出 6}}专栏大白话说Java面试题 — 01-Java基础篇