【Java】JDK 1.8 都有哪些新特性?(约215字)

JDK 1.8 都有哪些新特性?

JDK 1.8 新增了不少新的特性,如 Lambda 表达式、接口默认方法、Stream API、日期时间 API、Optional 类等。

三分恶面渣逆袭:JDK1.8主要新特性

①、Java 8 允许在接口中添加默认方法和静态方法。

public interface MyInterface {
    default void myDefaultMethod() {
        System.out.println("My default method");
    }

    static void myStaticMethod() {
        System.out.println("My static method");
    }
}

②、Lambda 表达式描述了一个代码块(或者叫匿名方法),可以将其作为参数传递给构造方法或者普通方法以便后续执行。

public class LamadaTest {
    public static void main(String[] args) {
        new Thread(() -> System.out.println("")).start();
    }
}

《Effective Java》的作者 Josh Bloch 建议使用 Lambda 表达式时,最好不要超过 3 行。否则代码可读性会变得很差。

③、Stream 是对 Java 集合框架的增强,它提供了一种高效且易于使用的数据处理方式。

List<String> list = new ArrayList<>();
list.add("中国加油");
list.add("世界加油");
list.add("世界加油");

long count = list.stream().distinct().count();
System.out.println(count);

④、Java 8 引入了一个全新的日期和时间 API,位于java.time包中。这个新的 API 纠正了旧版java.util.Date类中的许多缺陷。

LocalDate today = LocalDate.now();
System.out.println("Today's Local date : " + today);

LocalTime time = LocalTime.now();
System.out.println("Local time : " + time);

LocalDateTime now = LocalDateTime.now();
System.out.println("Current DateTime : " + now);

⑤、引入 Optional 是为了减少空指针异常。

Optional<String> optional = Optional.of("");
optional.isPresent();           // true
optional.get();                 // ""
optional.orElse("沉默王三");    // "bam"
optional.ifPresent((s) -> System.out.println(s.charAt(0)));     // "沉"

THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容