Java 8状态更新
Oracle計(jì)劃在2013年中期發(fā)布Java SE 8。
Lambda項(xiàng)目
Lambda項(xiàng)目以及JSR-335希望提供將代碼建模為Java中數(shù)據(jù)的方法-用非精確的俗語來說,它旨在將功能用作Java中的一流對(duì)象 。 為此,lambda項(xiàng)目希望為Java語言提供以下四個(gè)擴(kuò)展:
相反,以下代碼將其功能與Project Lambda結(jié)合使用:
List students = // ... students.paralell().filter(s -> s.getEntryYear() == 2011).map(s -> s.getGrade()).reduce(Math::max); 規(guī)范負(fù)責(zé)人和OpenJDK項(xiàng)目負(fù)責(zé)人Brian Goetz有關(guān)當(dāng)前狀態(tài)的信息可以在Lambda州找到。
在Project Jigsaw中,由Oracle領(lǐng)導(dǎo)的OpenJDK社區(qū)試圖將模塊化引入Java語言。 該方法將不同于OSGi,因?yàn)樗麄兿M谡Z言級(jí)別上通過靜態(tài)編譯時(shí)間檢查來建立它。 甲骨文公司的員工總是說他們?cè)谂κ笿igsaw與OSGi兼容。
Oracle首席平臺(tái)架構(gòu)師和OpenJDK項(xiàng)目負(fù)責(zé)人Marc Reinhold描述了模塊化方法的三個(gè)原則:
- 模塊化是一種語言構(gòu)造 –在Java平臺(tái)中以標(biāo)準(zhǔn)方式支持模塊化編程的最佳方法是將語言本身擴(kuò)展為支持模塊。 開發(fā)人員已經(jīng)根據(jù)語言考慮了標(biāo)準(zhǔn)的程序組件,例如類和接口。 模塊應(yīng)該只是另一種程序組件。
- 應(yīng)該嚴(yán)格執(zhí)行模塊邊界 –模塊私有的類應(yīng)該以與私有字段私有對(duì)類相同的方式私有。 換句話說,模塊邊界不僅應(yīng)確定類和接口的可見性,還應(yīng)確定其可訪問性。 沒有這種保證,就不可能構(gòu)建能夠安全運(yùn)行不受信任的代碼的模塊化系統(tǒng)。
- 靜態(tài)的單版本模塊解析通常就足夠了 –大多數(shù)應(yīng)用程序不需要在運(yùn)行時(shí)動(dòng)態(tài)添加或刪除模塊,也不需要同時(shí)使用同一模塊的多個(gè)版本。 模塊系統(tǒng)應(yīng)針對(duì)常見場景進(jìn)行優(yōu)化,但也應(yīng)支持由實(shí)際用例(例如,應(yīng)用程序服務(wù)器,IDE和測試工具)推動(dòng)的范圍狹窄的動(dòng)態(tài)多版本解析形式。
對(duì)于使用Jigsaw的程序員而言,這將特別值得注意,因?yàn)樵撜Z言現(xiàn)在將分為三個(gè)階段(而不是兩個(gè)階段):
- 編譯時(shí)間 : 編譯模塊的類。 編譯的類與資源(配置文件,元數(shù)據(jù)文件等)一起以JMOD格式(用于Java模塊)打包在一個(gè)歸檔文件中:
- 安裝時(shí)間:在安裝了JRE的任何計(jì)算機(jī)上,都會(huì)有一個(gè)模塊庫。 用戶可以在這里安裝Java模塊。
- 運(yùn)行時(shí)間:可以執(zhí)行定義主類的模塊 ( Invokable Module )。 JVM將從模塊庫中加載該模塊及其所需的任何模塊,然后執(zhí)行代碼。
馬克·萊因霍爾德(Marc Reinhold)提供的有關(guān)拼圖項(xiàng)目的當(dāng)前狀態(tài)的信息可以在拼圖項(xiàng)目:大圖—草稿1中找到 。
參考:我們的JCG合作伙伴 JohannesTh?nes在JohannesTh?nes博客上的 Java 8狀態(tài)更新 。
相關(guān)文章 :
- Java 7:項(xiàng)目代幣中的代碼示例
- Java 8虛擬擴(kuò)展方法
- Java Lambda語法替代
- 將Java向前推進(jìn)? 一個(gè)定義。 一年回顧。
- Java SE 7、8、9 –推進(jìn)Java
- Java 7功能概述
翻譯自: https://www.javacodegeeks.com/2012/01/java-8-status-updates.html
總結(jié)
以上是生活随笔為你收集整理的Java 8状态更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAXB,SAX,DOM性能
- 下一篇: Java中的正则表达式–软介绍