JDK1.8新特性?
...小于 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)));     // "秦"
