Java 8 (又稱爲 jdk 1.8) 是 Java 語言開發的一個主要版本。 Oracle 公司於 2014 年 3 月 18 日發佈 Java 8 ,它支持函數式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。 新特性 Java8 新增了很是多的特性,咱們主要討論如下幾個: Lambda 表達式 − Lambda容許把函數做爲一個方法的參數(函數做爲參數傳遞進方法中。 方法引用 − 方法引用提供了很是有用的語法,能夠直接引用已有Java類或對象(實例)的方法或構造器。與lambda聯合使用,方法引用能夠使語言的構造更緊湊簡潔,減小冗餘代碼。 默認方法 − 默認方法就是一個在接口裏面有了一個實現的方法。 新工具 − 新的編譯工具,如:Nashorn引擎 jjs、 類依賴分析器jdeps。 Stream API −新添加的Stream API(java.util.stream) 把真正的函數式編程風格引入到Java中。 Date Time API − 增強對日期與時間的處理。 Optional 類 − Optional 類已經成爲 Java 8 類庫的一部分,用來解決空指針異常。 Nashorn, JavaScript 引擎 − Java 8提供了一個新的Nashorn javascript引擎,它容許咱們在JVM上運行特定的javascript應用。 更多的新特性能夠參閱官網:What's New in JDK 8 在關於 Java 8 文章的實例,咱們均使用 jdk 1.8 環境,你能夠使用如下命令查看當前 jdk 的版本: $ 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) 編程風格 Java 8 但願有本身的編程風格,並與 Java 7 區別開,如下實例展現了 Java 7 和 Java 8 的編程格式: import java.util.Collections; import java.util.List; import java.util.ArrayList; import java.util.Comparator;javascript
public class Java8Tester { public static void main(String args[]){java
List<String> names1 = new ArrayList<String>(); names1.add("Google "); names1.add("Runoob "); names1.add("Taobao "); names1.add("Baidu "); names1.add("Sina "); List<String> names2 = new ArrayList<String>(); names2.add("Google "); names2.add("Runoob "); names2.add("Taobao "); names2.add("Baidu "); names2.add("Sina "); 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); } }); }ide
// 使用 java 8 排序 private void sortUsingJava8(List<String> names){ Collections.sort(names, (s1, s2) -> s1.compareTo(s2)); } } 執行以上腳本,輸出結果爲: $ javac Java8Tester.java $ java Java8Tester 使用 Java 7 語法: [Baidu , Google , Runoob , Sina , Taobao ] 使用 Java 8 語法: [Baidu , Google , Runoob , Sina , Taobao ] (出自:菜鳥教程 )函數式編程