Java 8(JDK 1.8)於 2014 年 3 月 18 日發布,引入函數式程式設計、新 JavaScript 引擎、全新日期時間 API、Stream API 等重大更新。
jjs、類依賴分析器 jdepsjava.util.stream):將真正的函數式程式設計風格引入 Javajava.time 套件)官方完整特性:What's New in JDK 8
$ java -version java version "1.8.0_31" Java(TM) SE Runtime Environment (build 1.8.0_31-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
import java.util.*;
public class Java8Tester {
public static void main(String args[]) {
List<String> names1 = Arrays.asList("Google ", "Runoob ", "Taobao ", "Baidu ", "Sina ");
List<String> names2 = new ArrayList<>(names1);
Java8Tester tester = new Java8Tester();
System.out.println("使用 Java 7 語法: ");
tester.sortUsingJava7(names1);
System.out.println(names1);
System.out.println("使用 Java 8 語法: ");
tester.sortUsingJava8(names2);
System.out.println(names2);
}
// Java 7 匿名類別寫法
private void sortUsingJava7(List<String> names) {
Collections.sort(names, new Comparator<String>() {
@Override public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
}
// Java 8 Lambda 寫法
private void sortUsingJava8(List<String> names) {
Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
}
}
使用 Java 7 語法: [Baidu , Google , Runoob , Sina , Taobao ] 使用 Java 8 語法: [Baidu , Google , Runoob , Sina , Taobao ]
| 序號 | 特性 |
|---|---|
| 1 | Lambda 表達式 |
| 2 | 方法引用 |
| 3 | 函數式介面 |
| 4 | 預設方法 |
| 5 | Stream API |
| 6 | Optional 類 |
| 7 | Nashorn JavaScript 引擎 |
| 8 | 新日期時間 API |
| 9 | Base64 |