Java 8 引入了许多新特性,包括:
Lambda 表达式:允许表达更为函数化的编程风格,可以使用更简洁的代码来表达行为。
接口的默认方法和静态方法:可以在接口中定义具体实现的方法和使用 static 关键字定义的静态方法。
方法引用:可以通过 :: 符号来引用已有的方法,简化 Lambda 表达式的使用。
Stream API:提供了一种高效的处理数据的方式,可以对集合进行复杂的查询和转换。
Date Time API:提供了新的时间日期处理方式,解决了旧版中的一些问题。
Optional 类:用于表示可能为 null 的值,减少 null 相关的错误。
Base64 加解密:提供了 Base64 编码的实现。
示例代码 - Lambda 表达式:
// 使用 Java 8 之前的匿名内部类
Runnable runnable1 = new Runnable() {
@Override
public void run() {
System.out.println("Before Java 8");
}
};
runnable1.run();
// 使用 Lambda 表达式
Runnable runnable2 = () -> System.out.println("Java 8");
runnable2.run();
示例代码 - 接口默认方法:
public interface MyInterface {
default void defaultMethod() {
System.out.println("Default method in interface");
}
}
public class MyClass implements MyInterface {
// 无需实现 defaultMethod,可直接使用
}
MyInterface myObj = new MyClass();
myObj.defaultMethod();
示例代码 - Stream API:
List<String> items = Arrays.asList("apple", "banana", "cherry", "date");
// 使用 Stream 筛选长度大于 5 的字符串
List<String> result = items.stream()
.filter(item -> item.length() > 5)
.collect(Collectors.toList());
// 输出结果 ["cherry"]
result.forEach(System.out::println);