Java的發(fā)展目前正在處于巔峰狀態(tài),隨著互聯(lián)網(wǎng)的發(fā)展Java不斷完善自身的功能。“這些演變可能會顛覆Java比C++更簡單的說法,但我認為,這樣的演進會使得Java成為一門更好的語言” Bjarne Stroustrup說到。
在過去的一年中,人們常常會提到一個前綴名詞modern,Modern Java就是其中之一。但“Modern”的這個用法到底有什么用意呢?
當人們談到現(xiàn)代編程語言時,主要的話題是關(guān)于這個語言是否精致、先進、方便。這就意味著這種語言不僅能夠解決當前的問題,還能夠解決未來遇到的問題。可擴展性、云存儲、支持更新范例和體系結(jié)構(gòu)等諸多特性都是“Modern”這個詞匯所期望實現(xiàn)的。
Java 9的“modern”特性
從過去的幾個版本中,Oracle公司和社區(qū)已經(jīng)努力讓Java保持相關(guān)性和現(xiàn)代化,這些努力讓Java 8擁有了一個巨大的變化,具有了像Lambdas、Functional Interfaces、Parallel Operations和Nashorn的新特性——也就是所謂的新的JVM JavaScript引擎。以下是版本中的一些功能:
·模塊系統(tǒng): Java的新模塊系統(tǒng)基于Jigsaw,這個被人期待已久的系統(tǒng)擁有確保強大的封裝和更好的代碼組織。
·JShell:這是Java自身的命令行工具。這個REPL允許用戶運行代碼時不必將其包裝到類中。這對于初學者來說是一個非常棒的工具。
·增強的Stream API:Java 8推出的Stream API,在Java 9中變得更好用。接口中也添加了一些新的方法——iterate、takeWhile、dropWhile和ofNullable。
·時間編譯(AoT):這是一個全新的功能,目前還處于試驗階段。它通過將Java類編譯為本地代碼,在VM中啟動之前,可縮短應(yīng)用程序的啟動時間。
·Java 9的HTTP / 2客戶端: HTTP / 2是未來!盡管以前的版本沒有完全被重寫,但是HTTP / 2允許服務(wù)器發(fā)回比客戶請求更多的數(shù)據(jù)。這非常酷哦!
·Immutable(不可變)集合:Java 9的Collection Factories允許用戶創(chuàng)建Immutable(不可變)集合,從而節(jié)省大量時間和代碼。
·Process API中的增強:這會擴展Java與OS進行交互的能力。有新的直接方法來處理進程狀態(tài)和名稱,并具有枚舉JVM等的功能。
這些特性將會改變用戶在Java中編寫代碼的方式,除了新特性之外,一些不太有用的特性也被棄用,其中包括Applet API。無論是構(gòu)建Android應(yīng)用程序還是云原生應(yīng)用程序,這一舉措都將提供健壯性和可伸縮性。
甲骨文公司也曾經(jīng)提到過,未來的Java發(fā)行版周期將為六個月,并且沒有Java 10。未來的發(fā)行版會在首發(fā)年份和月份之后命名。例如,下一個計劃發(fā)布將在2018年3月,因此這個Java將會被命名為Java 18.3。對于那些仍然使用JDK 8得人來說,也有一個好消息——JDK 8的支持將會被延長到2025年。