国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

Java 9 – 終極特性列表

瀏覽:2日期:2022-09-06 14:54:27

本文會根據(jù)針對即將發(fā)布的Java 9新特性做同步更新(最后更新:9/9/2014)

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

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

Java 9 – 終極特性列表

本文將根據(jù)Java 9的新特性做持續(xù)更新。敬請關(guān)注!

1. Jigsaw 項目;模塊化源碼

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

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

更多JEP 201內(nèi)容

2. 簡化進(jìn)程API

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

期望代碼能獲取Linux PIDS,現(xiàn)在是如下方式:

public static void main(String[] args) throws Exception{ Process proc = Runtime.getRuntime().exec(new String[]{ "/bin/sh", "-c", "echo $PPID" }); if (proc.waitFor() == 0) {InputStream in = proc.getInputStream();int available = in.available();byte[] outputBytes = new byte[available]; in.read(outputBytes); String pid = new String(outputBytes); System.out.println("Your pid is " + pid); }}

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

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

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

3. 輕量級 JSON API

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

**代碼例子稍后列出!

4. 錢和貨幣的API

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

//新的類型: Money & FastMoney Money amt1 = Money.of(10.1234556123456789, "USD"); // Money is a BigDecimalFastMoney amt2 = FastMoney.of(123456789, "USD"); // FastMoney is up to 5 decimal placesMoney total = amt1.add(amt2);

// 錢表達(dá)成各國貨幣的方法: MonetaryAmountFormat germanFormat = MonetaryFormats.getAmountFormat(Locale.GERMANY); System.out.println(germanFormat.format(monetaryAmount)); // 1.202,12 USD

更多關(guān)于 JSR 354的內(nèi)容

5. 改善鎖爭用機(jī)制

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

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

關(guān)于JEP 143的更多內(nèi)容

6. 代碼分段緩存

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

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

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

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

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

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

更多關(guān)于JEP 197的內(nèi)容

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

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

其他值得期待的內(nèi)容:8. HTTP 2.0客戶端

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

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

9. Kulla計劃: Java的REPL實現(xiàn)

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

更多關(guān)于Kulla計劃的內(nèi)容

這些新功能出自何處?

JEP和JSR并不是無中生有, 下面就介紹一下Java發(fā)展的生態(tài)環(huán)境:

小組 - 對特定技術(shù)內(nèi)容, 比如安全, 網(wǎng)絡(luò), Swing, HotSpot, 有共同興趣的組織和個人

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

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

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

原文地址:http://www.takipiblog.com/java-9-the-ultimate-feature-list/

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 日日噜噜噜夜夜爽爽狠狠69 | 99久久香蕉国产线看观香 | 午夜三级国产精品理论三级 | 手机在线精品视频每日更新 | 日本成人午夜 | 久久精品国产大片免费观看 | 欧美成a人免费观看久久 | 亚洲干综合 | 国产成人啪精品午夜在线观看 | 色综合久久久久久久 | 久热精品男人的天堂在线视频 | 欧美a一级| 国产欧美日韩不卡在线播放在线 | 性欧美美国级毛片 | 一级毛片视频免费观看 | 精品国产午夜肉伦伦影院 | 俄罗斯黄色毛片 | 三级色网站 | 一级床上爽高清播放 | 大狠狠大臿蕉香蕉大视频 | 欧美成人一级视频 | 国内精品久久久久久久星辰影视 | 国产福利一区二区在线精品 | 极品美女户外勾搭无套 | 91成年人视频| 美国aaaa一级毛片啊 | 九九在线精品视频播放 | 日韩欧一级毛片在线播无遮挡 | 久久福利青草精品资源站 | 一级毛片aaaaaa视频免费看 | 伊大人香蕉久久网欧美 | 中文字幕一区视频一线 | 精品国产看高清国产毛片 | 亚洲国产精品成人综合久久久 | 亚洲男女在线 | 国产欧美日韩综合精品一区二区 | 亚洲成成品网站有线 | 欧美一区精品二区三区 | 欧美日韩色 | 99re6热视频精品免费观看 | 亚洲第一中文 |