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))); // "秦"
