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