原創|行業資訊|編輯:龔雪|2014-12-11 09:57:20.000|閱讀 721 次
概述:Oracle已經公布,Java9首個增強計劃集(眾所周知的JEPs),已經確定會在2016年早些時候發布。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Oracle已經公布,Java9首個增強計劃集(眾所周知的JEPs) ,已經確定會在2016年早些時候發布。
三個新的API已經公布:
Process API在更新后能夠與操作系統中非JAVA相關的進程互動,目前使用的API存在諸多限制,這迫使開發人員經常求助于本地代碼。這個API存在的主要風險是操作系統的異構性,尤其是Windows。該API的設計需要適應在不同的操作系統上的小型設備的部署工作,它還應該考慮多個Java虛擬機運行在同一個操作系統進程的環境。這些考量將帶來一個更為抽象的API,這會增加設計的工作量。
新的HTTP客戶端,引入了對HTTP/2的支持。
現有API的問題及實現:
Https 2.0支持依賴于TLS ALPN (Application Layer Negotiation Extension),目前JDK中并不支持,Http 2.0規范本身還處于互聯網草案的形式,但在2014年它有望成為一個正式草案。
新的輕量級JSON API:它提供了一個輕量級的API用來處理和生成JSON文檔以及數據流,后者是基于已經標準化的JSON支持,它是JSR 353的一部分。
還有三個JVM和性能相關的特性公布:
改進競爭鎖,旨在改進當線程競爭訪問對象時的性能。改進競爭鎖對現實世界中的應用程序大有裨益,尤其是針對工業基準,如Volano和DaCapo。
這項工程將在以下與競爭Java監視器相關的領域,探索性能改進:
分割JIT編譯器的代碼緩存(在大型應用程序上獲得更好的JIT性能)。將代碼緩存分解為獨立的段,每個段都包含特定形式的編譯代碼,目的是為了改善性能,并支持未來擴展。
編譯代碼的組織和維護會對性能造成巨大影響,如果代碼緩存走錯了方向,若干方面的性能退化實例將會獲悉。在引入多層編譯后,代碼緩存的地位變得極其重要,因為編譯代碼的數量比起不使用多層編譯,會有2-4倍的增長。多層編譯也引入了一個新的編譯代碼類型:instrumented編譯代碼 (異型代碼)。異形代碼具備與非異形代碼不同的屬性,其中一個重要區別是,異形代碼有一個預定義的限制性生命周期,與此相反,非異形代碼永遠都會保留在代碼緩存中。
現存的代碼緩存是針對單一代碼優化的,即只有一種形式的編譯代碼。代碼緩存被組織為一個獨立的堆數據結構,位于一個連續的內存塊頭部。因此,具有預定義的限制性生命周期的異形代碼將與非異形代碼混合,并永久保留在代碼緩存中,這會帶來不用的性能和設計問題。比如說,sweeper方法在掃描時將被迫掃描整個代碼緩存,即使其中一些實體從未更新,或存在非方法的代碼。
“智慧的”Java編譯器的深入開發,稱之為sjavac,它支持并行和共享編譯,還包含一些其他特性。
由于存在各類關于穩定性和可移植性的問題,sjavac在默認情況下并沒有在JDK構建腳本中使用,這項JEP的首個目標是解決這些問題,這牽扯到必須確保工具能始終在所有的軟硬件配置上產生可靠的結果。
總體目標是要改善sjavac的質量,使其成為一個通用的javac封裝,有能力編譯各種大型Java項目。
后續項目將繼續探索如何在JDK工具鏈中將sjavac分離出來,如果可以的話。sjavac可能會成為一個獨立支持的工具,或是與javac集成的非獨立工具,或是其他。
最后,一個誘人的特性已經在JEP 201中得到了承諾:模塊化源碼。這其實就是曾經我們熟知的模塊化解決方案“Jigsaw項目”(最初目標是Java 8的一部分)。
Jigsaw項目旨在為Java SE平臺設計和實現一套標準化的模塊系統,并應用于自身平臺中,繼而投入到JDK中。其最初的目標是使平臺實現更容易擴展到小型設備上,改善安全性和可維護性,改善應用程序性能,并提供給開發人員在面對大型應用時一種更好的工具。
這項JEP是Jigsaw項目的第一階段的一部分,接下來JEP會將JRE和JDK的鏡像模塊化,之后再引入一個模塊系統。
在早期對源代碼進行重新組織的動機是:
原文鏈接: 翻譯: -
譯文鏈接:
狂歡繼續!【年終大促 巔峰盛"慧" 】促銷火熱進行中 iPhone 6 Plus、 iPhone 6、iPad Air滿就送,還不趕快買買買!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn