1.Lambda表达式 (Lambda Expressions):
Lambda表达式极大地简化了匿名内部类的创建,促进了函数式编程风格。开发者可以更 简洁地定义只有一行代码的函数对象,并将其作为参数传递给方法或者赋值给变量。
2.函数式接口 (Functional Interfaces):
为了配合Lambda表达式,Java 8增加了@FunctionalInterface注解来标记只有一个抽象方法的接口,如java.util.function包下的各种函数接口(如Predicate、Function、Consumer等)。
3.方法引用 (Method References):
这是一种更简洁的Lambda表达式形式,可以直接引用现有方法或构造函数。
4.接口的默认方法与静态方法:
(1)接口中现在可以包含默认方法(使用default关键字),允许在接口中提供方法的具体实现,而无需强制实现类去覆盖它。
(2)接口中还可以包含静态方法,增强了接口的功能性。
5.Optional类:
引入了Optional容器类来更好地处理null值问题,防止空指针异常,鼓励程序员写出更健壮的代码。
6.Stream API:
提供了一种声明式、高效且易于并行化的集合数据处理方式,可以进行过滤、映射、排序、聚合等各种操作。
7.新日期和时间API:
Java.time包中引入了新的日期和时间API,包括LocalDate、LocalTime、LocalDateTime、ZonedDateTime、Instant等类,取代了旧的java.util.Date和Calendar类,提供了更好的设计和线程安全。
8.并行数组操作:
对数组进行了增强,支持并行处理,通过Arrays.parallelSort()等方法提高了多核处理器上的性能。