色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

即將改變軟件開發(fā)的5個Java9新特性

瀏覽:63日期:2022-09-05 18:56:44
預計發(fā)布的Java 9中,最令人興奮的特性是什么?

有關Java9的消息最近顯得有些沉寂,不要被它迷惑了。JDK開發(fā)者正在努力朝著下一個版本邁進,計劃2015年12月前完成所有功能開發(fā)。之后,它會經(jīng)歷嚴格測試和bug修復以準備它的全面上市,按計劃會在2016年9月發(fā)布。

今天我們已經(jīng)對Java 9中所期待的特性有了一個很清晰的圖景。如果Java 8可以被描述為主要是lambdas表達式、streams和API變化的話,那么Java 9就是關于Jigsaw、額外的實用工具和內(nèi)部的變化。在這篇文章中,收集了一些我們認為是Java 9中最期待的特性——除了通常的猜測之外,Jigsaw項目,承擔了打破JRE并對Java核心組件模塊化的使命。

這里有一些特性是Java 9中絕對必要了解的,其中的一些已經(jīng)在早期的發(fā)布版本中為你搗鼓做好了準備。

1.Java + REPL = jshell

是的。之前我們懷疑Kulla項目是否會在Java 9中準時發(fā)布,但現(xiàn)在已得到了官方確認。下一版發(fā)布的Java將會有稱為jshell的新命令行工具,它會添加本地支持和以Java方式對REPL(交互式解釋器)進行推廣。意思是說,如果你想只運行幾行Java代碼,你不必把它包裝進一個單獨的工程或者方法。

噢,你可以忘掉那些分號了:

-> 2 + 2| 表達式的值是4| 將臨時變量$1的類型設為int

還有一些像REPL加載項一樣的替代品會增加到流行的IDE和解決方案中,就像Java REPL網(wǎng)頁控制臺。但目前為止,還沒有官方的或者合適的方式來這么做。jshell在早期的版本中已經(jīng)可以用了,等著你給它來個測試運行。

2、微基準測試要來了

由Alexey Shipilev開發(fā)的Java微基準測試套件(Java Microbenchmarking Harness)正在其進化的下一階段,并加入Java作為官方基準解決方案。我們真的很喜歡在Takipi做基準,所以一套標準化的執(zhí)行方式是我們期待的。

JHM是一組用來編譯、運行和分析nano/micro/milli/macro基準的套件。當涉及到精確基準評估,對結果產(chǎn)生很大影響的能力將備受關注,比如預熱時間和優(yōu)化。當你以微秒或納秒計時的情況下尤其如此。所以,如果你想要更加精確的結果來幫助跟蹤基準以做出正確的決定,JMH是你的最佳選擇——并且現(xiàn)在它已經(jīng)成為Java 9的同義詞了。

3、G1會成為新的默認垃圾收集器嗎?

我們經(jīng)常聽說的一個誤解是:Java只有一個垃圾收集器,而事實上它有4個。Java 9中,仍有一個運行提議,關于替換由Java 7引入的G1默認垃圾收集器(并行/吞吐量收集)的討論。不同收集器之間差別精簡概述,可以查看這篇里的文章。

通常來說,G1被設計來更好地支持大于4GB的堆,并且不會造成頻繁的GC暫停,但當暫停發(fā)生時,往往會處理更長時間。最近我們和Outbrain的性能專家Haim Yadid討論了關于GC的方方面面,來幫助你了解更多各收集器之間不同的權衡。同樣,如果你想要深入了解相關討論,那么hotspot-dev和jdk9-dev的郵件組是個開始學習不錯的地方。

4、未來是HTTP 2.0

官方的HTTP 2.0標準是幾個月之前被批準的,基于Google的SPDY算法構建。SPDY已經(jīng)展示了相對HTTP 1.1巨大的速度提升,范圍在11.81%到47.7%之間,并且它已經(jīng)存在于大多數(shù)現(xiàn)代的瀏覽器中了。Java 9將全面支持HTTP 2.0,并且為Java配備一個全新的HTTP客戶端來替代HttpURLConnection,并且同時還實現(xiàn)HTTP 2.0和websockets。

5、進程API得到了巨大的推動

到目前為止,通過Java來控制和管理操作系統(tǒng)進程能力有限。例如在早期版本的Java中,為了做一些簡單的事情,像得到進程PID,要么訪問本機代碼,要么用某種神奇的臨時解決方法。此外,還可能需要一個對于每個平臺提供不同實現(xiàn)來保證你得到正確的結果。

在Java 9中,除了獲取Linux PID的代碼,現(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); }}

轉向像這樣的代碼(同樣也支持所有的操作系統(tǒng)):

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

這一更新將擴展Java與操作系統(tǒng)交互的能力:全新的直接操作PID、進程名和狀態(tài)的方法,操作JVM線程和進程等等能力。

你不會在Java 9中見到什么?

我們以為兩個有趣的特性會作為即將到來的Java發(fā)布版本中的一部分——但現(xiàn)在我們知道它們將不會出現(xiàn)在這次發(fā)布的版本。

1、一個標準的輕量級JSON API

在我們進行的一項對350名開發(fā)人員的調(diào)查中,JSON API就像Jigsaw一樣被大肆宣傳,但看起來它好像沒在發(fā)布版本中,原因可能是資金問題。Mark Reinhold,Java平臺的首席架構師,在JDK 9的郵件列表中寫到:

“這個JEP對于平臺來說是個有益的補充,但長遠來看,考慮到資金的因素以及Oracle資助的其它特性,它并不如其它特性一樣重要。我們考慮可能在JDK 10或者之后的版本再發(fā)布這個JEP。”

2、金錢和貨幣API

有一條新聞,似乎看起來金錢和貨幣API也缺少Oracle的支持。這是我們從Anatole Tresch那里得到的答案,這個API的產(chǎn)品推廣師:

@tkfxin 目前不會。從Oracle那里沒得到支持。取而代之的,我們將提高Java EE支持并且spring也將支持它 :)

– Anatole Tresch (@atsticks) 2015年6月16日

我們遺漏了什么嗎?請在下面的評論區(qū)告訴我們吧。沒有空閑時間?來看看何時以及為何在產(chǎn)品中代碼會出現(xiàn)失敗中斷。

原文鏈接: takipi 翻譯: ImportNew

標簽: Java
相關文章:
主站蜘蛛池模板: 亚洲第一成年网站大全亚洲 | 国产资源精品一区二区免费 | 国产成人综合在线视频 | 女人张开腿等男人桶免费视频 | 欧美在线观看一区 | 亚洲在线中文字幕 | 久久久久亚洲精品中文字幕 | 亚洲羞羞裸色私人影院 | a毛片免费在线观看 | 免费老外的毛片清高 | 一级毛片 在线播放 | 成人网久久 | 美女张开腿给男人捅 | 国产日韩一区二区三区在线观看 | 欧美一级人与动毛片免费播放 | 免费高清一级欧美片在线观看 | 久草免费在线播放视频 | 国内精品久久久久久久星辰影视 | 欧美aaa大片| 国产精品免费大片一区二区 | 国内精品久久久久不卡 | 免费观看一级特黄欧美大片 | 日本天堂免费 | 一本色道久久综合亚洲精品 | 毛片网站大全 | 亚洲乱码国产一区网址 | 亚洲国产精品日韩在线观看 | 香港三级日本三级三级人妇 | 久久久免费 | 天天操夜夜噜 | 欧美成人精品不卡视频在线观看 | 欧美三级欧美一级 | 成人自拍视频在线 | 国产视频手机在线 | 爱逼综合网 | 性欧美videos高清精品 | vvvv99日韩精品亚洲 | 手机午夜看片 | 日韩成人在线观看 | a毛片免费 | 中文字幕一区二区在线播放 |