久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

一起談?wù)?Java 9 的新特性

 dxw555 2017-08-07


Java 8 發(fā)布已經(jīng)三年多了,,下一個版本現(xiàn)在已經(jīng)整裝待發(fā)了,,暫定發(fā)布日期是2017年9月21日。 

你也許已經(jīng)聽到 Java 9 的模塊化系統(tǒng),,不過,,新版本中還有更多新功能特性。在這篇博客里,,我們將試圖介紹其中的一部分,。 

你可以從 http://jdk9./download/ 下載 JDK 9 的 EA(早期體驗版),。 

好了,,不要再浪費時間了,我們開始介紹吧,!


Java 9 REPL(JShell)


Oracle 介紹過一個名為“JShell”的新工具,。它表示 Java Shell,是大家熟知的 REPL (讀取-執(zhí)行-打印-循環(huán)) 形式,。它用于執(zhí)行和測試 Java 的語言結(jié)構(gòu),,比如類、接口,、枚舉,、對象、語句等,,非常簡單,。很多語言都實現(xiàn)了讀取-執(zhí)行-打開-循環(huán)的交互形式,,現(xiàn)在 Java 也是其中一員了。REPL/JShell 看起來像這樣:

不需要 `public static void main(String[] args)`,??岚桑?/span>


HTTP 2.0 客戶端


Java 9 會完全支持 HTTP 2.0 并帶來新的 HTTP 客戶端,,它會代替 HttpURLConnection —— 同時還會實現(xiàn) HTTP 2.0 和 Web Socket,。

新的 API 在 .http 包中。

這個 API 使用創(chuàng)建者(Builder)模式,,這使得它真正易用:



Java 9 模塊 (Jigsaw 項目)


Java 9 特性的大變動之一是模塊系統(tǒng),。Oracle 把它作為 Jigsaw 項目的一部分。

  • 模塊化 JDK

  • 模塊化 Java 源代碼

  • 模塊化運行時映像

  • Java API 的內(nèi)部封裝

  • Java 平臺模塊化系統(tǒng)

它們的主要目標(biāo)之一是提供模塊化的 JVM,,使之可以在內(nèi)存有限的設(shè)備上運行,。JVM 可以只運行那些應(yīng)用程序需要的模塊和 API。

模塊系統(tǒng)看起來有點像:

模塊化的 JAR 文件包含一個額外的模塊描述符,。在這個模塊描述符中,,通過`requires`  語句表示對其它模塊的依賴。

此外,,`exports` 語句控制哪些包可以被其它模塊訪問,。

你可以在這里了解更多關(guān)于 Jigsaw 的信息。


改進(jìn)的進(jìn)程 API


Java SE 9 帶來一些進(jìn)程 API 的改進(jìn),。它們添加了一些新的類和方法,,來簡化控制和管理 OS 進(jìn)程。

進(jìn)程 API 中的兩個新接口:

  • java.lang.ProcessHandle

  • java.lang.ProcessHandle.Info

這一更新可以擴展 Java 與操作系統(tǒng)交互的能力:新的定位方法用于處理 PID,,進(jìn)程名稱和狀態(tài),,并可以枚舉 JVM、進(jìn)程等,。比如,,在 Linux 中檢索 PID 的代碼會像這樣:


輕量級的 JSON API

Java 9 帶來一個輕量級的 API,用于通過 JSON(JavaScriopt 對象符號) 數(shù)據(jù)交換格式處理和生成文件以及數(shù)據(jù)流,,JSON 是基于 JavaScript 的子集,,用來代替 XML。

這個 API 的主要目標(biāo)如下:

  • 解析和生成 JSON,。

  • 滿足 Java 開發(fā)者使用 JSON 的功能性需求,。

  • 解析 API 可以選擇標(biāo)記流,事件(包括文件層次結(jié)構(gòu))流,,或不可變樹的方式來呈現(xiàn)文檔或數(shù)據(jù)流視圖,。

  • 用于緊湊配置和 Java ME 的 API 子集。

  • 使用創(chuàng)建者模式 API 構(gòu)造不可變的樹型結(jié)構(gòu),。

  • 生成器風(fēng)格 API,,用于輸出 JSON 數(shù)組流和 JSON “文本”,。

  • 一個轉(zhuǎn)換 API,將已有的樹形值輸入轉(zhuǎn)換成另一個樹形值輸出,。

預(yù)計 JEP 會把它作為 java.util 的子包交付,,至少包含 4 個模塊:事件、流,、樹和生成器,。預(yù)期不會修改現(xiàn)有的模塊、包或類,。預(yù)計 JSON API 不會依賴 Java 基礎(chǔ)模塊之外的模塊,。


智能 Java 編譯 (第 2 階段)


智能 Java 編譯項目指在改進(jìn) sjavac (Java 編程語言編輯器) 工具,使它能默認(rèn)用于 JDK 構(gòu)建,,并普遍用于其它 JDK 之外的大項目構(gòu)建,。

由于穩(wěn)定性和便捷性相關(guān)的各種問題,sjavac 并未默認(rèn)用于 JDK 構(gòu)建腳本,。這一 JEP 的首要目標(biāo)是解決這些問題,。這需要確保這一工具在所有軟件/硬件配置上產(chǎn)生可靠的結(jié)果。

總體目錄是提升 sjavac 的質(zhì)量,,使它可以像常規(guī)的 javac 封裝那樣能夠編譯任何大型 Java 項目,。


私有接口方法


從 Java 8 開始可以在接口中實現(xiàn)默認(rèn)方法和靜態(tài)方法。然后我們不能在接口中創(chuàng)建私有方法,。

為了避免冗余代碼并提高可重用性,,Oracle 計劃在 Java SE 9 的接口中引入私有方法。從 Java SE 9 開始可以在接口中使用 ‘private’ 關(guān)鍵字寫私有方法和私有靜態(tài)方法了,。

私有方法可以是靜態(tài)的,,這樣它屬于接口。非靜態(tài)的私有方法可以由實現(xiàn)接口的實例調(diào)用,,但只能是在接口中,。

如果你使用默認(rèn)方法開發(fā) API,那么私有方法在代碼結(jié)構(gòu)方面對其實現(xiàn)會很有幫助,。


響應(yīng)式流


最近,,響應(yīng)式編程由于其帶來的好處,在應(yīng)用程序開發(fā)中非常流行,。Scala、Play,、Akka 等都已經(jīng)整合了響應(yīng)流,,受益匪淺。Oracle 也在 Java SE 9 中引入了響應(yīng)式流的 API,。

java.util.concurrent.Flow 類封裝了以下四個接口:

  • Flow.Processor

  • Flow.Publisher

  • Flow.Subscriber

  • Flow.Subscription

這些接口支持響應(yīng)式流的發(fā)布-訂閱框架,。Java 9 還支持一個工具類:SubmissionPublisher,。發(fā)布者產(chǎn)生若干事項由訂閱者消費。而訂閱者通過訂閱進(jìn)行管理,。訂閱連接了發(fā)布者和訂閱者,。


多分辨率圖像 API


在 Java SE 9 中,Oracle 會引入新的多分辨率圖像API,。MultiResolutionImage 是這個 API 的重要接口,。

MultiResolutionImage 封裝一組不同高度和寬度和圖像(也就是不同分辨率)并允許我們根據(jù)自己的需要進(jìn)行查詢。

簡單地說,,這個新的 API 允許把一組不同分辨率(寬度和高度)的圖像封裝到一個圖像中,。


新的 API 定義在 java.awt.image 包中,可以幫助我們:

  • 把多個不同分辨率的圖像作為變體封裝在一個圖像中,。

  • 獲取所有圖像變體,。

  • 獲得一個特定分辨率的圖像變體 - 這是根據(jù)給定的 DPI 度量來表示指定大小的邏輯圖像的最佳變體。

Java 9 提供的 MultiResolutionImage 接口有兩個重要的方法:

  • getResolutionVariant(): 返回一個圖像

  • getResolutionVariants(): 返回圖像列表


除了這些功能,,還有一些隨 Java 9 發(fā)布的特性/改進(jìn),,比如:

  • 改進(jìn) GC (垃圾回收)

  • HTML5 Javadocs

  • 改進(jìn) Stream(流) API

  • 增強 @Deprecated 注解

  • 改進(jìn) Optional 類

  • 改進(jìn) CompletableFuture API

該說的都說了,所有這些功能都計劃加入 Java 9 更新,,但我們并不能保證它們一定會隨 Java 發(fā)布,。所以,對 Java 9 拭目以待,。


更多干貨請前往公眾號菜單欄“讀我”->“干貨分享”查看,。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多