JDK(Java Development Kit)是官方整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境、下載Java開發(fā)工具和Java基礎(chǔ)類庫(kù)源代碼。官方云開·全站登錄入口JDK作為JAVA開發(fā)的下載環(huán)境,是官方運(yùn)行JAVA程序不可缺少的環(huán)境,不管是下載做JAVA開發(fā)還是做安卓開發(fā),都必須在電腦上安裝JDK。官方小到小型設(shè)備,下載大到智慧城市,官方Java的下載貢獻(xiàn)力量是其他任何技術(shù)無可比擬的。
Java SE Development Kit基本簡(jiǎn)介
Java SE,官方 JDK 9 現(xiàn)已正式發(fā)布!首先新功能jshell無疑讓JAVA再次領(lǐng)先其它編程語(yǔ)言和平臺(tái)10年以上!java開發(fā)者們?cè)僖膊挥昧w慕別的自帶REPL的語(yǔ)言了,不用為了試個(gè)Java功能而開個(gè)Groovy shell了 。下載其次最主要的官方大功能就是Jigsaw——Java模塊化了,有了它,下載自己定制/裁剪JDK變得更直接。官方
Java SE Development Kit已經(jīng)正式推出了全新的云開·全站登錄入口jdk9,但是許多用戶都在網(wǎng)上傳謠說jdk9沒有32位版本的,其實(shí)jdk9暫未放棄32位運(yùn)行環(huán)境推出了32位版,用戶朋友可以下載使用32位的jdk9進(jìn)行開發(fā)。用過JDK的同學(xué)肯定知道這肯定是32位版本的
Java SE Development Kit開發(fā)組成
javac – 編譯器,將源程序轉(zhuǎn)成字節(jié)碼
jar – 打包工具,將相關(guān)的類文件打包成一個(gè)文件
javadoc – 文檔生成器,從源碼注釋中提取文檔
jdb – debugger,查錯(cuò)工具
java – 運(yùn)行編譯后的java程序(.class后綴的)
appletviewer:小程序?yàn)g覽器,一種執(zhí)行html文件上的Java小程序的Java瀏覽器。
Javah:產(chǎn)生可以調(diào)用Java過程的C過程,或建立能被Java程序調(diào)用的C過程的頭文件。
Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時(shí)顯示字節(jié)代碼含義。
Jconsole: Java進(jìn)行系統(tǒng)調(diào)試和監(jiān)控的工具
Java SE Development Kit 9(32位)軟件特色
1. Java 平臺(tái)級(jí)模塊系統(tǒng)
Java 9 的定義功能是一套全新的模塊系統(tǒng)。當(dāng)代碼庫(kù)越來越大,創(chuàng)建復(fù)雜,盤根錯(cuò)節(jié)的“意大利面條式代碼”的幾率呈指數(shù)級(jí)的增長(zhǎng)。這時(shí)候就得面對(duì)兩個(gè)基礎(chǔ)的問題: 很難真正地對(duì)代碼進(jìn)行封裝, 而系統(tǒng)并沒有對(duì)不同部分(也就是 JAR 文件)之間的依賴關(guān)系有個(gè)明確的概念。每一個(gè)公共類都可以被類路徑之下任何其它的公共類所訪問到, 這樣就會(huì)導(dǎo)致無意中使用了并不想被公開訪問的 API。此外,類路徑本身也存在問題: 你怎么知曉所有需要的 JAR 都已經(jīng)有了, 或者是不是會(huì)有重復(fù)的項(xiàng)呢? 模塊系統(tǒng)把這倆個(gè)問題都給解決了。
模塊化的 JAR 文件都包含一個(gè)額外的模塊描述器。在這個(gè)模塊描述器中, 對(duì)其它模塊的依賴是通過 “requires” 來表示的。另外, “exports” 語(yǔ)句控制著哪些包是可以被其它模塊訪問到的。所有不被導(dǎo)出的包默認(rèn)都封裝在模塊的里面。如下是一個(gè)模塊描述器的示例,存在于 “module-info.java” 文件中:
module blog {
exports com.pluralsight.blog;
requires cms;
}
2. Linking
當(dāng)你使用具有顯式依賴關(guān)系的模塊和模塊化的 JDK 時(shí),新的可能性出現(xiàn)了。你的應(yīng)用程序模塊現(xiàn)在將聲明其對(duì)其他應(yīng)用程序模塊的依賴以及對(duì)其所使用的 JDK 模塊的依賴。為什么不使用這些信息創(chuàng)建一個(gè)最小的運(yùn)行時(shí)環(huán)境,其中只包含運(yùn)行應(yīng)用程序所需的那些模塊呢? 這可以通過 Java 9 中的新的 jlink 工具實(shí)現(xiàn)。你可以創(chuàng)建針對(duì)應(yīng)用程序進(jìn)行優(yōu)化的最小運(yùn)行時(shí)映像而不需要使用完全加載 JDK 安裝版本。
3. JShell : 交互式 Java REPL
許多語(yǔ)言已經(jīng)具有交互式編程環(huán)境,Java 現(xiàn)在加入了這個(gè)俱樂部。您可以從控制臺(tái)啟動(dòng) jshell ,并直接啟動(dòng)輸入和執(zhí)行 Java 代碼。 jshell 的即時(shí)反饋使它成為探索 API 和嘗試語(yǔ)言特性的好工具。
測(cè)試一個(gè) Java 正則表達(dá)式是一個(gè)很好的說明 jshell 如何使您的生活更輕松的例子。 交互式 shell 還可以提供良好的教學(xué)環(huán)境以及提高生產(chǎn)力,您可以在此了解更多信息。在教人們?nèi)绾尉帉?Java 的過程中,不再需要解釋 “public static void main(String [] args)” 這句廢話。
4. 改進(jìn)的 Javadoc
有時(shí)一些小事情可以帶來很大的不同。你是否就像我一樣在一直使用 Google 來查找正確的 Javadoc 頁(yè)面呢? 這不再需要了。Javadoc 現(xiàn)在支持在 API 文檔中的進(jìn)行搜索。另外,Javadoc 的輸出現(xiàn)在符合兼容 HTML5 標(biāo)準(zhǔn)。此外,你會(huì)注意到,每個(gè) Javadoc 頁(yè)面都包含有關(guān) JDK 模塊類或接口來源的信息。
5. 集合工廠方法
通常,您希望在代碼中創(chuàng)建一個(gè)集合(例如,List 或 Set ),并直接用一些元素填充它。 實(shí)例化集合,幾個(gè) “add” 調(diào)用,使得代碼重復(fù)。 Java 9,添加了幾種集合工廠方法:
Set ints = Set.of(1, 2, 3);
List strings = List.of("first", "second");
除了更短和更好閱讀之外,這些方法也可以避免您選擇特定的集合實(shí)現(xiàn)。 事實(shí)上,從工廠方法返回已放入數(shù)個(gè)元素的集合實(shí)現(xiàn)是高度優(yōu)化的。這是可能的,因?yàn)樗鼈兪遣豢勺兊模涸趧?chuàng)建后,繼續(xù)添加元素到這些集合會(huì)導(dǎo)致 “UnsupportedOperationException” 。
6. 改進(jìn)的 Stream API
長(zhǎng)期以來,Stream API 都是 Java 標(biāo)準(zhǔn)庫(kù)最好的改進(jìn)之一。通過這套 API 可以在集合上建立用于轉(zhuǎn)換的申明管道。在 Java 9 中它會(huì)變得更好。Stream 接口中添加了 4 個(gè)新的方法:dropWhile, takeWhile, ofNullable。還有個(gè) iterate 方法的新重載方法,可以讓你提供一個(gè) Predicate (判斷條件)來指定什么時(shí)候結(jié)束迭代:
IntStream.iterate(1, i -> i < 100, i -> i + 1).forEach(System.out::println);
第二個(gè)參數(shù)是一個(gè) Lambda,它會(huì)在當(dāng)前 IntStream 中的元素到達(dá) 100 的時(shí)候返回 true。因此這個(gè)簡(jiǎn)單的示例是向控制臺(tái)打印 1 到 99。
除了對(duì) Stream 本身的擴(kuò)展,Optional 和 Stream 之間的結(jié)合也得到了改進(jìn)?,F(xiàn)在可以通過 Optional 的新方法 `stram` 將一個(gè) Optional 對(duì)象轉(zhuǎn)換為一個(gè)(可能是空的) Stream 對(duì)象:
Stream s = Optional.of(1).stream();
在組合復(fù)雜的 Stream 管道時(shí),將 Optional 轉(zhuǎn)換為 Stream 非常有用。
7. 私有接口方法
Java 8 為我們帶來了接口的默認(rèn)方法。 接口現(xiàn)在也可以包含行為,而不僅僅是方法簽名。 但是,如果在接口上有幾個(gè)默認(rèn)方法,代碼幾乎相同,會(huì)發(fā)生什么情況? 通常,您將重構(gòu)這些方法,調(diào)用一個(gè)可復(fù)用的私有方法。 但默認(rèn)方法不能是私有的。 將復(fù)用代碼創(chuàng)建為一個(gè)默認(rèn)方法不是一個(gè)解決方案,因?yàn)樵撦o助方法會(huì)成為公共API的一部分。 使用 Java 9,您可以向接口添加私有輔助方法來解決此問題:
public interface MyInterface {
void normalInterfaceMethod();
default void interfaceMethodWithDefault() { init(); }
default void anotherDefaultMethod() { init(); }
// This method is not part of the public API exposed by MyInterface
private void init() { System.out.println("Initializing"); }
}
如果您使用默認(rèn)方法開發(fā) API ,那么私有接口方法可能有助于構(gòu)建其實(shí)現(xiàn)。
8. HTTP/2
Java 9 中有新的方式來處理 HTTP 調(diào)用。這個(gè)遲到的特性用于代替老舊的 `HttpURLConnection` API,并提供對(duì) WebSocket 和 HTTP/2 的支持。注意:新的 HttpClient API 在 Java 9 中以所謂的孵化器模塊交付。也就是說,這套 API 不能保證 100% 完成。
9. 多版本兼容 JAR
我們最后要來著重介紹的這個(gè)特性對(duì)于庫(kù)的維護(hù)者而言是個(gè)特別好的消息。當(dāng)一個(gè)新版本的 Java 出現(xiàn)的時(shí)候,你的庫(kù)用戶要花費(fèi)數(shù)年時(shí)間才會(huì)切換到這個(gè)新的版本。這就意味著庫(kù)得去向后兼容你想要支持的最老的 Java 版本 (許多情況下就是 Java 6 或者 7)。這實(shí)際上意味著未來的很長(zhǎng)一段時(shí)間,你都不能在庫(kù)中運(yùn)用 Java 9 所提供的新特性。
配置命令
CMD命令提示符輸入 java -version
Java SE Development Kit最新特性
—最好玩的新功能當(dāng)屬jshell,有了它無疑讓JAVA再次領(lǐng)先其它編程語(yǔ)言和平臺(tái)10年以上!騎士繼續(xù)流行20年也完全沒有問題。因?yàn)樗虶raal+Truffle、Substrate VM開啟了無限可能!!Java開發(fā)們們?cè)僖膊挥昧w慕別的自帶REPL的語(yǔ)言了,不用為了試個(gè)Java功能而開個(gè)Groovy shell了 。
—最主要的大功能就是Jigsaw——Java模塊化了,有了它,自己定制/裁剪JDK變得更直接,而包沖突也會(huì)變得更容易發(fā)現(xiàn)和解決。
—作為JVM的JIT編譯器研發(fā),最關(guān)注的功能是JVMCI,有了它之后,第三方開發(fā)就可以更為方便的向HotSpot VM插入一些強(qiáng)大的插件,例如說可以從外部配置插入一個(gè)新的JIT編譯器。這樣,要在HotSpot VM上使用Graal編譯器就非常容易了,不必再專門用改造過的Graal VM。Oracle JDK 9計(jì)劃在未來的某個(gè)update版本里發(fā)布配套的AOT編譯器,而這個(gè)AOT編譯器正是基于Graal與JVMCI的。
—Oracle JDK 9 / OpenJDK 9把G1作為默認(rèn)GC選項(xiàng),如果要選用Parallel GC、CMS GC等別的GC的話則要顯式在命令行上指定。這對(duì)目前正在使用CMS GC的人來說多半沒什么影響,畢竟現(xiàn)在用CMS GC也要顯式配置-XX:+UseConcMarkSweepGC選項(xiàng)。
Java SE Development Kit更新日志
將bug掃地出門進(jìn)行到底
優(yōu)化用戶反饋的問題,提升細(xì)節(jié)體驗(yàn)
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
異環(huán)最新版
網(wǎng)友評(píng)論
用戶評(píng)論