目前JDK1.8被各大公司、各大項目紛紛使用,作爲Java開發中使用最多的版本,細心的你,或許早已發現它與之前版本存在着較大的差異。如果能熟練掌握使用這些差異、新特性,你會發現另一片天地。今天抽時間整理下,JDK1.8新特性究竟有哪些?並以【JDK1.8新特性】專題逐一展開討論、學習。
(JDK1.8新特性常常在面試中被問及的頻率很高哦)
JDK1.8概述
JDK1.8,又稱之爲Java 8(我習慣叫它爲JDK1.8,後續統一叫做JDK1.8),是Java語言開發的一個主要版本。Oracle公司於2014年3月18日發佈,它支持函數式編程,新的JavaScript引擎,新的日期API,新的Stream API等。
JDK1.8相比1.7之前版本,有以下幾方面的優化:
- 速度更快;
- 代碼更少(Lambda表達式);
- 強大Stream API;
- 便於並行;
- 最大化減少空指針異常(OPtional類)。
舉例如下,JDK1.8的特性是不是與衆不同。
package com.xcbeyond.study.jdk8;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
/**
* JDK1.8新特性
* @Auther: xcbeyond
* @Date: 2019/11/27 0027 23:53
*/
public class Java8Test {
@Test
public void java8Example() {
// 定義一個整型list,對其進行遍歷
Integer[] numArray={1,2,3,4,5,6,7,8};
List<Integer> numList= Arrays.asList(numArray);
/**
* 方式1:常規foreach
*/
for (int num : numList) {
System.out.println(num);
}
/**
* 方式2:JDK1.8 新特性寫法(Lambda表達式)
* 代碼量是不是少了很多
*/
numList.forEach((num) -> System.out.println(num));
}
}
新特性
JDK1.8新增了非常多的特性,本專題主要討論以下幾個:
- Lambda表達式:Lambda允許把函數作爲一個方法的參數(函數作爲參數傳遞到方法中)。
- 方法引用:方法引用提供了非常有用的語法,可以直接引用已有Java類或對象(實例)的方法或構造器。與lambda聯合使用,方法引用可以使語言的構造更緊湊簡潔,減少冗餘代碼。
- 默認方法:默認方法就是一個在接口裏面有了一個實現的方法。
- 新工具:新的編譯工具,如:Nashorn引擎 jjs、 類依賴分析器jdeps。
- Stream API:新添加的Stream API(java.util.stream) 把真正的函數式編程風格引入到Java中。
- Date Time API:加強對日期與時間的處理。
- Optional類:Optional 類已經成爲 Java 8 類庫的一部分,用來解決空指針異常。
- Nashorn,JavaScript引擎:JDK1.8提供了一個新的Nashorn javascript引擎,它允許我們在JVM上運行特定的javascript應用。
參考資料:
- https://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html
- https://www.runoob.com/java/java8-new-features.html