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

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
使用AWS ECS和LAMBDA的無服務器圖像處理管道使用AWS ECS和LAMBDA的無服務器圖像處理管道Apr 18, 2025 am 08:28 AM

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

CNCF ARM64飛行員:影響和見解CNCF ARM64飛行員:影響和見解Apr 15, 2025 am 08:27 AM

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

使用GO構建網絡漏洞掃描儀使用GO構建網絡漏洞掃描儀Apr 01, 2025 am 08:27 AM

此基於GO的網絡漏洞掃描儀有效地確定了潛在的安全弱點。 它利用了GO的並發功能的速度功能,包括服務檢測和漏洞匹配。讓我們探索它的能力和道德

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!