在這篇文章中,Richard Gall解釋了現(xiàn)代化互聯(lián)網(wǎng)的精致、先進(jìn)、方便的特性,以及Java 9是如何實(shí)現(xiàn)這些特性的。
在過去一年的時(shí)間里,編程語言總是帶著一個(gè)奇怪的前綴詞:現(xiàn)代,現(xiàn)代Java。但是現(xiàn)代這個(gè)詞用在這里又是什么意思呢?
大多數(shù)人談起現(xiàn)代語言時(shí),實(shí)際上只是在談?wù)摼幊陶Z言是多么精致、多么先進(jìn)和多么方便。這也意味著語言不僅能夠解決當(dāng)前的問題,而且還能解決未來的問題。可擴(kuò)展性、云準(zhǔn)備、支持更新的范例和體系結(jié)構(gòu)等諸多特性,都是對(duì)“現(xiàn)代”編程語言的期許。
Java 9的新特性
Oracle和社區(qū)已經(jīng)通過各種方式來努力保持Java的相關(guān)性和現(xiàn)代性,從老版本中可以清楚的看到這些努力。在Java 8上已經(jīng)發(fā)生了不少的變化,具有了像Lambdas、功能接口、并行操作和Nashorn那樣的新特性。現(xiàn)在讓我們來看看最新版本中的一些能“打開新世界”的功能:
1. 模塊系統(tǒng):Java的新模塊系統(tǒng)。基于Jigsaw,備受期待的系統(tǒng)將能確保封裝和代碼組織。
2. JShell:關(guān)于Java有自己的命令行工具。這個(gè)REPL能使代碼不必包裝到類中就能運(yùn)行。對(duì)于初學(xué)者來說是一個(gè)非常實(shí)用的工具。
3. 增強(qiáng)的Stream API:在Java 8推出時(shí),用戶非常喜愛Stream API,并不斷猜測它到底是什么?在Java 9中,不僅有更新的Stream API,接口中也添加了一些新方法,例如迭代、takeWhile、dropWhile以及ofNullable。
4. 提前編譯(AoT):這是一個(gè)全新的功能,雖然目前還處于試驗(yàn)階段,但它可以在VM中啟動(dòng)之前,通過將Java類編譯為本地代碼,有效縮短應(yīng)用程序的啟動(dòng)時(shí)間。
5. HTTP / 2客戶端:HTTP / 2是未來的發(fā)展趨勢(shì),盡管不是完全重寫舊的版本,但HTTP / 2允許服務(wù)器發(fā)回比客戶請(qǐng)求更多的數(shù)據(jù)。
6. 不可變集合:Java 9將允許創(chuàng)建不可變集合,從而節(jié)省大量時(shí)間和代碼。
7. Process API:這將擴(kuò)展Java與OS系統(tǒng)的交互能力。有新的直接方法來處理進(jìn)程狀態(tài)和名稱,并具有枚舉JVM等功能。
這些新特性將改變您在Java中編寫代碼的方式,并且確保為您在Java 9中編程提供最優(yōu)體驗(yàn)。無論是構(gòu)建Android應(yīng)用程序、構(gòu)建無服務(wù)器Web應(yīng)用程序或是別的,Java都是您的最佳選擇。
JDK 9只是一個(gè)開始。但接下來將不會(huì)有Java 10,未來的發(fā)行版將用發(fā)布年份和月份進(jìn)行命名。例如,下一個(gè)發(fā)布計(jì)劃日期為2018年3月,因此命名為Java 18.3。2018年9月發(fā)布的Java 18.9,是下一個(gè)長期版本。對(duì)于仍在使用JDK 8的人來說,好消息是對(duì)它的支持將延長到2025年。Oracle網(wǎng)站給出了帶圖的表格:
總而言之,Java SE發(fā)生了巨大的變化,社區(qū)也正在努力使Java成為開發(fā)人員的首選。