JDK1.8新特性?

tim-qtp...小于 1 分钟Java基础

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

①、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();
        
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("秦一");
            }
        }).start();
    }
}

③、Stream 流

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("秦二");    // "秦一"
optional.ifPresent((s) -> System.out.println(s.charAt(0)));     // "秦"
Java Stream流
Java Stream流