java 8如何
Java 8 新特性
Java 8 引入了多项重要特性,主要包括 Lambda 表达式、Stream API、新的日期时间 API 和默认方法等。以下是 Java 8 的主要特性及其使用方法。
Lambda 表达式
Lambda 表达式是一种匿名函数,可以简化代码并增强函数式编程能力。语法为 (parameters) -> expression 或 (parameters) -> { statements; }。
// 示例:使用 Lambda 表达式实现 Runnable 接口
Runnable r = () -> System.out.println("Hello Lambda");
new Thread(r).start();
Stream API
Stream API 提供了一种高效处理集合数据的方式,支持链式操作和并行处理。常用操作包括 filter、map、reduce 和 collect。

// 示例:使用 Stream 过滤和打印列表中的偶数
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
.filter(n -> n % 2 == 0)
.forEach(System.out::println);
新的日期时间 API
Java 8 引入了 java.time 包,提供了更强大的日期和时间处理功能,包括 LocalDate、LocalTime 和 LocalDateTime。
// 示例:获取当前日期和时间
LocalDate today = LocalDate.now();
LocalTime now = LocalTime.now();
LocalDateTime currentDateTime = LocalDateTime.now();
默认方法
接口中可以定义默认方法,允许在不破坏现有实现的情况下扩展接口功能。

// 示例:接口中的默认方法
interface Vehicle {
default void print() {
System.out.println("I am a vehicle!");
}
}
class Car implements Vehicle {
// 可以重写默认方法,但不是必须的
}
Optional 类
Optional 类用于处理可能为 null 的值,避免空指针异常。
// 示例:使用 Optional 避免空指针
Optional<String> optional = Optional.ofNullable(getName());
optional.ifPresent(name -> System.out.println(name.length()));
方法引用
方法引用是 Lambda 表达式的简写形式,可以直接引用已有方法。
// 示例:使用方法引用打印列表元素
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(System.out::println);
总结
Java 8 的特性显著提升了代码的简洁性和功能性。Lambda 表达式和 Stream API 支持函数式编程,新的日期时间 API 解决了旧 API 的缺陷,默认方法增强了接口的灵活性。






