Java 9的新特性總結(jié)
模塊化系統(tǒng)–Jigsaw 項目
模塊化是一個很通用的概念。在軟件中,模塊化可以運用到編寫和實現(xiàn)一個程序和計算系統(tǒng),他們都是作為獨立的模塊,而不是作為一個單一的和完整的設(shè)計。
Java 9中主要的變化是已經(jīng)實現(xiàn)的模塊化系統(tǒng)。模塊化的引入使得JDK可以在更小的設(shè)備中使用。采用模塊化系統(tǒng)的應(yīng)用程序只需要這些應(yīng)用程序所需的那部分JDK模塊,而非是整個JDK框架了。模塊化系統(tǒng)也可以將公共的類封裝到一個模塊中。因此一個封裝在模塊中的定義為public的類不能再任何地方使用,除非一個模塊顯式的定義了這個模塊。由于Java 9的這個變化,Java內(nèi)部的API(例如com.sun.*)默認情況下是不能使用的。
簡而言之,所有的模塊將需要在所謂的module-info.java文件中進行描述,這個文件是位于Java代碼結(jié)構(gòu)的頂層。
我們的模塊car(汽車)需要依賴+模塊engine(引擎)和需要導(dǎo)出handling(操縱)包。
需要更多深入的例子可以查看OpenJDK中項目Jigsaw:模塊化系統(tǒng)快速入門(http://openjdk.java.net/projects/jigsaw/quick-start)。
JShell–Java 9 REPL
你可能問:“REPL是什么”?REPL是一種快速運行語句的命令行工具。
在Java中,如果你想執(zhí)行一個簡單的語句,我們要么創(chuàng)建一個帶main方法的類,要么創(chuàng)建一個可以執(zhí)行的Test類。當(dāng)你正在啟動Java程序的時候,如果你想執(zhí)行某些語句并且想立刻看見執(zhí)行結(jié)果,上面的做法看起來不是那么有用了。
JShell試圖去解決這個問題。Java開發(fā)者可以利用JShell在沒有創(chuàng)建類的情況下直接聲明變量,計算表達式,執(zhí)行語句。JShell也可以從文件中加載語句或者將語句保存到文件中。并且JShell也可以是tab鍵進行自動補全的特性。
集合工廠方法
在Java 9之前,Java只能利用一些實用方法(例如:Collections.unmodifiableCollection(Collection《? extends T》 c))創(chuàng)建一個不可修改視圖的集合。例如,我們可以在Java 8中使用一條如下所示的語句,創(chuàng)建一個Collection的不可修改的視圖。雖然這是最簡單的創(chuàng)建方式,但是看起來很糟糕!不是嗎?
現(xiàn)在,Java 9引入了一些有用的工廠方法來創(chuàng)建不可修改的集合。我們現(xiàn)在在Java 9中創(chuàng)建不可修改的Map集合
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%