成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java 9 – 終極特性列表

開發 后端
加快OpenJDK的開發速度: 繼2014年3月份發布了Java 8之后,我們進入下一個兩年的發布周期. Java 9預計在2016年發布,并且已經公布了JEP(JDK改進提議)中的前期列表.同時,我們已經把一些新特性整理到了JSR(Java規范請求),還有提出了一些希望包括在新版本中的其他特性.

[[124364]]

本文會根據針對即將發布的Java 9新特性做同步更新(***更新:9/9/2014)

加快OpenJDK的開發速度: 繼2014年3月份發布了Java 8之后,我們進入下一個兩年的發布周期. Java 9預計在2016年發布,并且已經公布了JEP(JDK改進提議)中的前期列表.同時,我們已經把一些新特性整理到了JSR(Java規范請求),還有提出了一些希望包括在新版本中的其他特性.

這些重要的特性都包括在Jigsaw項目中。顯著的性能改善和期待已久的API包括:進程API更新,JSON將成為java.util的一部分,貨幣處理API.對于想處在技術最前沿的你,可從這里獲得Java 9的初期版本.

本文將根據Java 9的新特性做持續更新。敬請關注!

被接受的特性

1. Jigsaw 項目;模塊化源碼

Jigsaw項目是為了模塊化Java代碼、將JRE分成可相互協作的組件,這也是Java 9 眾多特色種的一個。JEP是邁向Jigsaw四步中的***步,它不會改變JRE和JDK的真實結構。JEP是為了模塊化JDK源代碼,讓編譯系統能夠模塊編譯并在構建時檢查模塊邊界。這個項目原本是隨Java 8發布的,但由于推遲,所以將把它加到Java 9.

一旦它完成,它可能允許根據一個項目需求自定義組件從而減少rt.jar的大小。在JDK 7 和JDK 8的rt.jar包中有大約20,000個類,但有很多類在一些特定的環境里面并沒有被用到(即使在Java 8的緊湊分布特性中已經包含了一部分解決方法也存在著類冗余)。這么做是為了能讓Java能夠容易應用到小型計算設備(比如網絡設備)中,提高它的安全和性能,同時也能讓開發者更容易構建和維護這些類庫。

更多JEP 201內容

2. 簡化進程API

截止到目前,Java控制與管理系統進程的能力是有限的。舉個例子,現在為了簡便獲取你程序的進程PID,你要么調用本地程序要么要自己使用一些變通方案。更多的是,每個(系統)平臺需要有一個不同實現來確保你能獲得正確的結果。

期望代碼能獲取Linux PIDS,現在是如下方式:

  1. public static void main(String[] args) throws Exception 
  2.     Process proc = Runtime.getRuntime().exec(new String[]{ "/bin/sh""-c""echo $PPID" }); 
  3.   
  4.     if (proc.waitFor() == 0
  5.     { 
  6.         InputStream in = proc.getInputStream(); 
  7.         int available = in.available(); 
  8.         byte[] outputBytes = new byte[available]; 
  9.   
  10.     in.read(outputBytes); 
  11.     String pid = new String(outputBytes); 
  12.   
  13.     System.out.println("Your pid is " + pid); 
  14.     } 

在Java 9中,可以變換成如下方式(支持所有的操作系統):

  1. System.out.println("Your pid is " + Process.getCurrentPid()); 

這次更新將會擴展Java與操作系統的交互能力:新增一些新的直接明了的方法去處理PIDs,進程名字和狀態以及枚舉多個JVM和進程以及更多事情。

3. 輕量級 JSON API

目前有多種處理JSON的Java工具,但JSON API 獨到之處在于JSON API將作為Java語言的一部分,輕量并且運用Java 8的新特性。它將放在java.util包里一起發布(但在JSR 353里面的JSON是用第三方包或者其他的方法處理的).

**代碼例子稍后列出!

4. 錢和貨幣的API

在Java 8引進了日期和時間的API之后, Java 9引入了新的貨幣API, 用以表示貨幣, 支持幣種之間的轉換和各種復雜運算. 關于這個項目的具體情況, 請訪問https://github.com/JavaMoney,里面已經給出了使用說明和示例, 以下是幾個重要的例子:

  1. //新的類型: Money & FastMoney 
  2.   
  3. Money amt1 = Money.of(10.1234556123456789"USD"); // Money is a BigDecimal 
  4. FastMoney amt2 = FastMoney.of(123456789"USD"); // FastMoney is up to 5 decimal places 
  5. Money total = amt1.add(amt2); 
  1. // 錢表達成各國貨幣的方法: 
  2.   
  3. MonetaryAmountFormat germanFormat = MonetaryFormats.getAmountFormat( 
  4. Locale.GERMANY); 
  5.   
  6. System.out.println(germanFormat.format(monetaryAmount)); // 1.202,12 USD 

更多關于 JSR 354的內容

5. 改善鎖爭用機制

鎖爭用是限制許多Java多線程應用性能的瓶頸. 新的機制在改善Java對象監視器的性能方面已經得到了多種基準(benchmark)的驗證, 其中包括Volano. 測試中通訊服務器開放了海量的進程來連接客戶端, 其中有很多連接都申請同一個資源, 以此模擬重負荷日常應用.

通過諸如此類的壓力測試我們可以估算JVM的極限吞吐量(每秒的消息數量). JEP在22種不同的測試中都得到了出色的成績, 新的機制如果能在Java 9中得到應用的話, 應用程序的性能將會大大提升.

關于JEP 143的更多內容

6. 代碼分段緩存

Java 9的另一個性能提升來自于JIT(Just-in-time)編譯器. 當某段代碼被大量重復執行的時候, 虛擬機會把這段代碼編譯成機器碼(native code)并儲存在代碼緩存里面, 進而通過訪問緩存中不同分段的代碼來提升編譯器的效率.

和原來的單一緩存區域不同的是, 新的代碼緩存根據代碼自身的生命周期而分為三種:

- 永駐代碼(JVM 內置 / 非方法代碼)

- 短期代碼(僅在某些條件下適用的配置性(profiled)代碼)

- 長期代碼(非配置性代碼)

緩存分段會在各個方面提升程序的性能, 比如做垃圾回收掃描的時候可以直接跳過非方法代碼(永駐代碼), 從而提升效率.

更多關于JEP 197的內容

7. 智能Java編譯, 第二階段

智能Java編譯工具sjavac的***階段開始于JEP 139這個項目, 用于在多核處理器上提升JDK的編譯速度. 現在這個項目已經進入第二階段(JEP 199), 目的是改進sjavac并讓其成為取代目前JDK編譯工具javac的Java默認的通用編譯工具.

其他值得期待的內容:

8. HTTP 2.0客戶端

HTTP 2.0標準雖然還沒正式發布, 但是已經進入了最終審查階段, 預計可以在Java 9發布之前審查完畢. JEP 110將會重新定義并實現一個全新的Java HTTP客戶端, 用來取代現在的HttpURLConnection, 同時也會實現HTTP 2.0和網絡接口(原文websockets). 它現在還沒被JEP正式認可但我們希望在Java 9中包含這一項目的內容.

官方的HTTP 2.0 RFC(Request for Comments, 官方技術討論/會議記錄等等的一系列文檔記錄)預訂于2015年2月發布, 它是基于Google發布的SPDY(Speedy, 快速的)協議. 基于SPDY協議的網絡相對于基于HTTP 1.1協議的網絡有11.81%到47.7%之間的顯著提速, 現在已經有瀏覽器實現了這個協議.

9. Kulla計劃: Java的REPL實現

這個取名為Kulla的項目最近宣布將于2015年4月整合測試, 雖然已經不太有希望能趕上Java 9的發布, 但如果進度快的話或許剛好能趕上. 現在Java并沒有來自官方的REPL(Read-Eval-Print-Loop)方式, 也就是說現在如果你想要跑幾行Java代碼做一個快速的測試, 你仍然需要把這幾行代碼封裝在項目或者方法里面. 雖然在一些流行的IDE里面有Java REPL工具, 但它們并沒有官方支持, 而Kulla項目或許就能成為Java官方發布的REPL解決方案. 

更多關于Kulla計劃的內容

這些新功能出自何處?

JEP和JSR并不是無中生有, 下面就介紹一下Java發展的生態環境:

小組 - 對特定技術內容, 比如安全, 網絡, Swing, HotSpot, 有共同興趣的組織和個人

項目 - 編寫代碼, 文檔以及其他工作, 至少由一個小組贊助和支持, 比如最近的Lambda計劃, Jigsaw計劃和Sumatra計劃.

JDK改進提案(JEP) - 每當需要有新的嘗試的時候, JEP可以在JCP(Java Community Process)之前或者同時提出非正式的規范(specification). 被正是認可的JEP正式寫進JDK的發展路線圖并分配版本號.

Java規范提案(JSR) - 新特性的規范出現在這一個階段, 可以來自于小組 / 項目, JEP, JCP成員或者Java社區(community)成員的提案. 每個Java版本都由相應的JSR支持, Java 9暫時還沒有.

責任編輯:張偉 來源: oschina
相關推薦

2014-09-16 11:22:31

Java 9

2014-08-21 10:34:11

Java 9Java

2014-12-12 15:08:53

Java 9

2014-12-04 10:47:18

Java 9

2015-10-16 14:27:29

iOS9collectionV特性

2014-12-10 09:53:43

Java 9

2015-07-20 09:39:41

Java日志終極指南

2014-04-16 07:48:56

Java 8Permgen

2014-09-12 10:46:35

Java9

2015-07-16 09:52:40

Java9新特性軟件開發

2014-09-24 09:58:43

Windows 9

2018-09-30 14:20:03

編程語言Java新特性

2013-06-12 15:19:05

iOS7WWDC

2014-12-24 10:24:55

Java

2011-03-25 13:44:28

Java值傳遞

2018-01-19 22:30:07

2025-04-18 08:24:22

2020-07-28 08:59:22

JavahreadLocal面試

2024-08-01 08:38:59

2015-05-19 09:51:57

WWDCiOS9
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美综合在线 | 国产91精品久久久久久久网曝门 | 国产乱码高清区二区三区在线 | 久久免费精彩视频 | 黄视频网址 | 欧美成人一区二区三区 | 欧美性一区二区三区 | 一区二区三区四区在线视频 | 国产精品99久久久久久宅男 | 精品久久久久久久人人人人传媒 | 天天干天天想 | 91中文视频 | 欧美精品久久久久久 | 国产一区二区精品在线观看 | 国产一区三区在线 | 国产一区二区免费 | 亚洲成人一区 | 精品久久久久久 | 久草免费在线视频 | 精品综合 | 国产精品亚洲一区 | 自拍偷拍精品 | 精精国产xxxx视频在线播放 | 国产日韩精品视频 | 日本三级日产三级国产三级 | 国产精品久久久久一区二区三区 | 激情网站在线观看 | 视频1区2区 | 亚洲成av| 福利视频网址 | 国产精品久久久久久久久久久久久久 | 国产精品一区一区 | 91原创视频在线观看 | 国产区在线看 | 中文字幕日韩三级 | 91在线成人| 精品久久久久一区二区国产 | 三级视频在线观看 | 久久亚洲欧美日韩精品专区 | 四虎在线观看 | 三a毛片 |