JavaSE 8 新特性

1. 簡介

毫無疑問,Java 8是Java自Java 5(發(fā)布于2004年)之后的最重要的版本。這個版本包含語言、編譯器、庫、工具和JVM等方面的十多個新特性。在本文中我們將學(xué)習(xí)這些新特性,并用實際的例子說明在什么場景下適合使用。

這個教程包含Java開發(fā)者經(jīng)常面對的幾類問題:

語言

編譯器

工具

JVM

2.Java語言的新特性

2.1 Lambda表達(dá)式與Functional接口


2.2 接口的默認(rèn)方法與靜態(tài)方法


2.3 方法引用


2.4 重復(fù)注解


2.5 更好的類型推測機(jī)制


2.6 擴(kuò)展注解的支持

3. Java編譯器的新特性

3.1 參數(shù)名字


4. Java 類庫的新特性

4.1 Optional

為了解決空指針異常,Google的Guava項目引入了Optional類,Guava通過使用檢查空值的方式來防止代碼污染,它鼓勵程序員寫更干凈的代碼。Google Guava的成功,使得Java 8類庫引入了Optional類。java.util.Optional<T>

Optional實際上是個容器:它可以保存類型T的值,或者僅僅保存null。


如果Optional類的實例為非空值的話,isPresent()返回true,否從返回false。為了防止Optional為空值,orElseGet()方法通過回調(diào)函數(shù)來產(chǎn)生一個默認(rèn)值。map()函數(shù)對當(dāng)前Optional的值進(jìn)行轉(zhuǎn)化,然后返回一個新的Optional實例。orElse()方法和orElseGet()方法類似,但是orElse接受一個默認(rèn)值而不是一個回調(diào)函數(shù)。


4.2 Stream


4.3 Date/Time API (JSR 310)


4.4 JavaScript引擎Nashorn


4.5 Base64


4.6 并行(parallel)數(shù)組


4.7 并發(fā)(Concurrency)


5. 新的Java工具

5.1 Nashorn引擎: jjs


5.2 類依賴分析器jdeps


6. Java虛擬機(jī)(JVM)的新特性

PermGen空間被移除了,取而代之的是Metaspace(JEP 122)。JVM選項-XX:PermSize與-XX:MaxPermSize分別被-XX:MetaSpaceSize與-XX:MaxMetaspaceSize所代替。


參考文獻(xiàn)

Java8 新特性終極指南

譯 -- Java 8的新特性—終極版

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 聲明:本文翻譯自Java 8 Features Tutorial – The ULTIMATE Guide,翻譯過...
    程序熊大閱讀 87,061評論 25 389
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 原鏈接:http://www.cnblogs.com/langtianya/p/3757993.html JDK各...
    把愛放下會走更遠(yuǎn)閱讀 1,214評論 0 10
  • 花匠的丁香落了。 花匠退隱,從將軍退下。庭院還是那個庭院,丁香也是那時的丁香。花匠不賣花了,整日庭院大開,供游...
    鬼聞香閱讀 237評論 0 0
  • 今天可謂是萬里碧空,秋高氣爽,今天早上被晨陽媽媽的電話吵醒了。醒來一看,快九點了。因為這幾天演出特別累!每次回來都...
    阿濤演藝閱讀 341評論 0 5

友情鏈接更多精彩內(nèi)容