首頁 > 科技週邊 > IT業界 > JVMLS 2016:Java虛擬機器語言峰會的回顧

JVMLS 2016:Java虛擬機器語言峰會的回顧

William Shakespeare
發布: 2025-02-18 10:26:10
原創
507 人瀏覽過

JVMLS 2016: A Recap of Java Virtual Machine Language Summit

2016年Java虛擬機語言峰會:展望JVM的未來

2016年Java虛擬機語言峰會(JVMLS)匯聚了語言設計師和JVM工程師,共同探討JVM的未來發展及其對Java語言的影響。本次峰會重點關注了Project Jigsaw、Project Valhalla和虛擬機未來等關鍵議題。

模塊化:Project Jigsaw

Project Jigsaw是Java 9的核心特性,它為Java語言引入了模塊化機制。開發者可以創建模塊,實現可靠的配置、強大的封裝以及改進的可擴展性、安全性與性能。 Java 9將允許創建模塊(本質上是包含新結構——模塊描述符的JAR包)。模塊描述符通過指定模塊名稱、列出所需模塊以及導出的包來描述模塊。在運行時,模塊主要只能看到其依賴的模塊(可讀性),並且只有在讀取該模塊且該模塊導出包含該類型的包時才能訪問其他模塊中的類型(可訪問性)。這意味著編譯器和JVM最終放棄了以往將所有代碼和依賴項整合到一起的大泥球模式,取而代之的是一個更貼近我們對軟件結構認知的真實圖譜。編譯器和JVM都能理解這個圖譜,從而在編譯或啟動時檢測到缺失的模塊、相同模塊的多個版本或多個模塊導出相同包等問題,避免運行時錯誤或難以察覺的細微錯誤。

值類型:Project Valhalla

Project Valhalla旨在引入值類型,可以將其概括為用戶自定義的原始類型。值類型與原始類型一樣,不會產生內存開銷或間接尋址。一個包含兩個int字段x和y的自定義點將被內聯到其使用位置,只需要兩個int所需的內存,而點的數組本質上就是一個x/y對的數組。與原始類型一樣,這樣的點沒有標識——雖然可以有兩個值為5的不同Integer對象,但不能有兩個不同的int值5。與類一樣,值類型可以具有方法和字段,並實現接口。因此,其口號是:“像類一樣編碼,像int一樣工作”。這將使我們不再需要在首選的抽象和所需的性能之間權衡。

然而,該項目很快偏離了軌道。眾所周知,泛型不適用於原始類型——無法創建ArrayList。對於八種原始類型(參見Stream或Trove等庫的原始類型特化),這已經很痛苦了,但當開發者可以定義更多類型時,這將變得難以忍受。如果值類型必須被裝箱才能與泛型交互(就像今天的原始類型一樣),那麼它們的使用將非常有限,並且將無法啟動。

因此,我們需要能夠將泛型與值類型一起使用——原始類型也可以一起使用。最終,我們不僅希望實例化ArrayList或ArrayList,還希望它分別由int[]或point[]支持。這被稱為特化,它打開了一個全新的難題。

如果幸運的話,部分甚至全部內容都將包含在Java 10中。

JVMLS 2016: A Recap of Java Virtual Machine Language Summit

虛擬機未來

John Rose談到了吸引虛擬機走向未來的幾個方向:

  • 對象、值、數組、方法等的統一模型
  • 持續改進性能,例如通過提高密度和共享來提高內存效率,以及持續優化熱點路徑
  • 使用超越線程作為核心抽象的纖程實現細粒度並發
  • 變得更加有用、兼容和互操作——對於在其上運行的語言以及原生語言,從而彌合它們之間的差距
  • 堆棧具體化,其中堆棧將類和方法作為真正的對象來保存,而不僅僅是作為字符串,並且每個幀的完整上下文(局部變量、監視器等)都是可見的,並且運行程序可以編輯堆棧

許多內容都超出了我的理解範圍,但聆聽他的演講仍然受益匪淺,即使只是為了感受他的熱情。

與Rose的展望精神相符的是Project Panama(Mikel Vidstedt和Tobi Ajila在“Going Native”中進行了討論),Ian Graves補充了“Java向量API”。 Christian Wimmer關於“One Compiler”的演示也旨在彌合差距。

總結

JVM是一個強大的工具,許多聰明的人正在努力使其更強大,同時控制其複雜性。

關於2016年JVM語言峰會的常見問題解答 (此部分內容與原文相同,略)

以上是JVMLS 2016:Java虛擬機器語言峰會的回顧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板