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
因此,我們需要能夠將泛型與值類型一起使用——原始類型也可以一起使用。最終,我們不僅希望實例化ArrayList
如果幸運的話,部分甚至全部內容都將包含在Java 10中。
虛擬機未來
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中文網其他相關文章!

我們都體驗過傳統自動化平台如Zapier和IFTTT的神奇之處。它們擅長連接應用程序並自動化簡單的“如果這樣,則那樣”序列:新表單提交創建電子表格行,傳入郵件觸發Slack警報。簡單、有效,且對於基本任務來說是巨大的時間節省者。但是,你的實際工作流程有多麼簡單?一旦你的工作流程需要理解細微的上下文、優雅地處理錯誤或處理非結構化數據,這些工具往往會遇到障礙。它們的簡單性使其易於使用,但也成為一種限制。當簡單規則不夠用時:考慮一下客戶支持。票務系統湧入非結構化數據——聊天片段、屏幕截圖、複雜的用戶描

定制电信软件开发无疑是一项相当大的投资。然而,从长远来看,您可能会意识到,这样的项目可能更具成本效益,因为它可以像市场上任何现成的解决方案一样提高您的生产力。了解构建定制电信系统的最重要优势。 获取您所需的确切功能 您可以购买的现成电信软件有两个潜在问题。有些缺乏可能显著改善您工作效率的有用功能。有时您可以通过一些外部集成来增强它们,但这并不总是足以使它们变得出色。 其他软件功能过多,使用起来过于复杂。您可能不会使用其中的一些(永远不会!)。大量的功能通常还会增加价格。 基于您的需求

Arm64 架構開源軟件的 CI/CD 難題與解決方案 在 Arm64 架構上部署開源軟件需要一個強大的 CI/CD 環境。然而,Arm64 和傳統 x86 處理器架構的支持水平之間存在差異,Arm64 通常處於劣勢。面向多種架構的基礎設施組件開發人員對工作環境有一定的期望: 一致性:跨平台使用的工具和方法保持一致,避免因採用不太流行的平台而需要改變開發流程。 性能:平台和支持機制具有良好的性能,確保在支持多個平台時部署方案不會因速度不足而受影響。 測試覆蓋率:對所有平台同時進行效率、合規性和

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境