我們正焦急等待的Java8中將會(huì)支持一些新特性,這些新特性本應(yīng)當(dāng)在Java7中加入?yún)s被推遲了。現(xiàn)在,Oracle承諾新版本將會(huì)是“革命,而非進(jìn)化”。Java語言的前景將會(huì)如何?
在2011JavaOne回憶中,Oracle的Java首席架構(gòu)師Mark Reinhold給大眾介紹了一部分Java8的特性,以及Java9的一些計(jì)劃。不幸的是,本在Java7中計(jì)劃的5個(gè)關(guān)鍵改進(jìn),其中有2個(gè)因?yàn)?/span>Java release版本的日期原因被暫時(shí)擱置。Mark承認(rèn)Java7的更新非常重要,但是暗示了Java8將在基礎(chǔ)層面改變原本語言的功能。看一下特性列表,應(yīng)該是接近真實(shí)的。
Java8的release版本將包含兩個(gè)主要項(xiàng)目:Lambda 和 Jigsaw. 在Lambda項(xiàng)目中, Java將提升優(yōu)化在多核處理系統(tǒng)中的有效能力。多核是Java將會(huì)運(yùn)行的最常見的硬件支持,所以還是非常有必要優(yōu)化在多核平臺(tái)的性能的。Lambda項(xiàng)目將包含一個(gè)額外的支持將代碼模型化為數(shù)據(jù)的編程模式的處理系統(tǒng)[1]。新處理系統(tǒng)能夠方便地使用Lambda表達(dá)式, 作為多核平臺(tái)的最佳處理方式。這些新特性包括:
l Lambda 表達(dá)式的使用
l 擴(kuò)展的目標(biāo)類型化
l 方法與構(gòu)造函數(shù)引用
l 默認(rèn)方法
若想對(duì)Lambda 項(xiàng)目了解更多,請?jiān)L問:http://openjdk.java.net/projects/lambda/
Java8第二個(gè)激動(dòng)人心的項(xiàng)目就是Jigsaw。Jigsaw目的是在JDK中建立一套設(shè)計(jì)和實(shí)施模塊化系統(tǒng)的行之有效的方法,并將該模塊化系統(tǒng)直接應(yīng)用于JDK本身。這是為了加強(qiáng)大塊代碼的可維護(hù)性以及提升代碼在跨應(yīng)用程序或大型操作時(shí)的可用性。Jigsaw項(xiàng)目帶來了相當(dāng)多的新特性,包括封裝,重構(gòu),版本控制和模塊集成。
若想對(duì)Jigsaw項(xiàng)目了解更多,請?jiān)L問:http://openjdk.java.net/projects/ jigsaw /
通過上述兩個(gè)項(xiàng)目, 還將會(huì)有其他的語言特征加入,如: 加強(qiáng)了Java核心庫能夠簡單的表達(dá)集合(collections)的并行計(jì)算并且 virtual extension methods 運(yùn)行在接口中給一個(gè)方法指定默認(rèn)實(shí)現(xiàn)。支持傳感器的新Date/Time API將增加代碼的可部署方式。
Oracle 正在規(guī)劃并開始討論Java9開發(fā)的關(guān)鍵領(lǐng)域。他們正在考察建立一個(gè)自調(diào)節(jié)的JVM(針對(duì)運(yùn)行效率和性能),改進(jìn)本地集成和大規(guī)模多核可伸縮性。并且在考慮通過元對(duì)象協(xié)議和資源管理提供對(duì)云程序的跨語言支持。Java有著巨大的開發(fā)者基數(shù)從而正在逐步成為世界上最常用的編程語言,所以Java的新特性并不能讓迎合所有人。Oracle期望Java成為未來應(yīng)用程序的最主要的編程語言,不僅推動(dòng)了語言的進(jìn)步,也能同時(shí)取得開發(fā)者的歡心。
[1]: Given the increasing relevance of callbacks and other functional-style idioms, it is important that modeling code as data in Java be as lightweight as possible.從官網(wǎng)上摘抄的一段,對(duì)于modeling code as data的理解,modeling應(yīng)當(dāng)是動(dòng)詞所以最后還是翻譯為將代碼模型化為數(shù)據(jù)。
[2]: http://www.disi.unige.it/person/ZuccaE/FOOL2011/goetz-slides.pdf 這個(gè)pdf解釋了很多Java8的特性
原文引用:http://www.learncomputer.com/java-8-new-features/