更多課程 選擇中心
        Java培訓

        400-111-8989

        Java培訓 > Java教程  > 正文

        一起談談 Java 9 的新特性

        • 發布:Java培訓
        • 來源:Java教程
        • 時間:2017-11-28 18:01

        Java 8 發布已經三年多了,下一個版本現在已經整裝待發了,暫定發布日期是2017年9月21日。

        【一起談談Java 9 的新特性】

        你也許已經聽到 Java 9 的模塊化系統,不過,新版本中還有更多新功能特性。

        【一起談談Java 9 的新特性】

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

        Java 9 REPL(JShell)

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

        【一起談談Java 9 的新特性】

        不需要 `public static void main(String[] args)`。酷吧?

        HTTP 2.0 客戶端

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

        新的 API 在 java.net.http 包中。

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

        【一起談談Java 9 的新特性】

        Java 9 模塊 (Jigsaw 項目)

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

        模塊化 JDK

        模塊化 Java 源代碼

        模塊化運行時映像

        Java API 的內部封裝

        Java 平臺模塊化系統

        它們的主要目標之一是提供模塊化的 JVM,使之可以在內存有限的設備上運行。JVM 可以只運行那些應用程序需要的模塊和 API。

        模塊系統看起來有點像:

        【一起談談Java 9 的新特性】

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

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

        你可以在這里了解更多關于 Jigsaw 的信息。

        改進的進程 API

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

        進程 API 中的兩個新接口:

        java.lang.ProcessHandle

        java.lang.ProcessHandle.Info

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

        【一起談談Java 9 的新特性】

        輕量級的 JSON API

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

        這個 API 的主要目標如下:

        解析和生成 JSON。

        滿足 Java 開發者使用 JSON 的功能性需求。

        解析 API 可以選擇標記流,事件(包括文件層次結構)流,或不可變樹的方式來呈現文檔或數據流視圖。

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

        使用創建者模式 API 構造不可變的樹型結構。

        生成器風格 API,用于輸出 JSON 數組流和 JSON “文本”。

        一個轉換 API,將已有的樹形值輸入轉換成另一個樹形值輸出。

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

        智能 Java 編譯 (第 2 階段)

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

        由于穩定性和便捷性相關的各種問題,sjavac 并未默認用于 JDK 構建腳本。這一 JEP 的首要目標是解決這些問題。這需要確保這一工具在所有軟件/硬件配置上產生可靠的結果。

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

        私有接口方法

        從 Java 8 開始可以在接口中實現默認方法和靜態方法。然后我們不能在接口中創建私有方法。

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

        私有方法可以是靜態的,這樣它屬于接口。非靜態的私有方法可以由實現接口的實例調用,但只能是在接口中。

        【一起談談Java 9 的新特性】

        如果你使用默認方法開發 API,那么私有方法在代碼結構方面對其實現會很有幫助。

        響應式流

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

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

        Flow.Processor

        Flow.Publisher

        Flow.Subscriber

        Flow.Subscription

        這些接口支持響應式流的發布-訂閱框架。Java 9 還支持一個工具類:SubmissionPublisher。發布者產生若干事項由訂閱者消費。而訂閱者通過訂閱進行管理。訂閱連接了發布者和訂閱者。

        多分辨率圖像 API

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

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

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

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

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

        獲取所有圖像變體。

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

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

        getResolutionVariant(): 返回一個圖像

        getResolutionVariants(): 返回圖像列表

        【一起談談Java 9 的新特性】

        除了這些功能,還有一些隨 Java 9 發布的特性/改進,比如:

        改進 GC (垃圾回收)

        HTML5 Javadocs

        改進 Stream(流) API

        增強 @Deprecated 注解

        改進 Optional 類

        改進 CompletableFuture API

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

        感謝大家閱讀“一起談談 Java 9 的新特性”本文由java培訓機構小編轉載自網絡,版權歸原作者所有,旨在分享提供閱讀,更多精彩內容請關注Java培訓官網

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:深入理解 Java final 變量的內存模型
        下一篇:Eclipse開發環境配置
        12大要點讓你的Java開發所向披靡~

        12大要點讓你的Java開發所向披靡~

        學習Java最好的12本免費在線電子書

        學習Java最好的12本免費在線電子書

        Java常用日志框架介紹

        Java常用日志框架介紹

        一篇文章了解RPC框架原理

        一篇文章了解RPC框架原理

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        貴州省

        福建省

        • 達內廈門軟件園中心
        廣西省

        海南省

        国产高清情侣视频2019年,限制电影福利在线观看,23伊人大香蕉 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>