明天又要上班了,又想到昨天看的最新一期的《極限挑戰(zhàn)》。感慨時(shí)光還是轉(zhuǎn)瞬即逝的。依稀記得剛?cè)胄械臅r(shí)候,JDK的版本還停留在Java 6。轉(zhuǎn)眼現(xiàn)在已經(jīng)到Java9了。既然是自己的職業(yè),想必大家都有必要知道Java9給大家?guī)砹耸裁窗伞?/p>
網(wǎng)絡(luò)上已經(jīng)有了很多籠統(tǒng)的介紹。我再寫一篇這樣的東西放這邊感覺沒啥意義。所以我準(zhǔn)備把我覺得有意思的點(diǎn)抽出來。然后用代碼示例的方式跟大家一起來學(xué)習(xí)一下Java9的。畢竟程序員最有說服力的就是Code。
Java 9 REPL(JShell)
Java 9 REPL(Read Evaluate Print Loop)也就是我們俗稱的JShell是這次Java 9更新的最大亮點(diǎn)。想必大家在各種文章中已經(jīng)看到了它的廬山真面目了。JShell可以被用來執(zhí)行和測試任何 Java 中的結(jié)構(gòu),如 class,interface,enum,object,statements 等。使用起來相當(dāng)?shù)暮唵稳菀住_@里我就不講太多關(guān)于JShell的細(xì)節(jié)。畢竟大家都講太多關(guān)于它的東西了。
接口中可以使用私有方法
在 Java 8 中,我們可以在接口中使用默認(rèn)或者靜態(tài)方法提供一些實(shí)現(xiàn)方式,但是不能創(chuàng)建私有方法。但是從 Java SE 9 開始,我們也能夠在接口類中使用 ‘private’ 關(guān)鍵字寫私有化方法和私有化靜態(tài)方法。例如:
Java 9 系統(tǒng)模塊化
系統(tǒng)模塊化這個(gè)功能也是被大家廣為宣傳的Java 9新特性之一。Java 9引入了Jigsaw Project來實(shí)現(xiàn)模塊化,目前Java 9預(yù)設(shè)的模塊數(shù)為92個(gè)。我們可以使用 JDK Modules,也能創(chuàng)建我們自己的 modules,例如:
module com.bugfactory.foo { }
增強(qiáng)了Process Api的功能
Java SE 9 對Process API 進(jìn)行了一些的增強(qiáng),Java 9 可以通過添加一些新的類和方法來優(yōu)化系統(tǒng)級進(jìn)程的管控。
Process API 中的兩個(gè)新接口:
java.lang.ProcessHandle
java.lang.ProcessHandle.Info
下面是Process Api的示例代碼:
Try With Resources 又增強(qiáng)了
眾所周知,在Java 7中提供了Try With Resources的支持來自動(dòng)管理資源,讓異常處理的語句看起來比較清晰明朗了。這次的Java 9中又讓這個(gè)功能更牛逼了。下面我們用Java 7和Java 9的同樣的代碼的兩種寫法來體會(huì)一下新寫法的可讀性。
Java 7:
java 9:
想必大家比較之后一目了然了吧。