日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Valhalla LW2的进展–内联类型

發布時間:2023/12/3 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Valhalla LW2的进展–内联类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

過去幾周(2019年6月/ 2019年7月), 瓦爾哈拉計劃的LW2階段/原型最初于2018年10月提出,在面向公眾的方面取得了重大進展。 在這篇文章中,我簡要總結了最近發布的一些消息,文檔和Valhalla Early Access Build。 LW2在Valhalla Wiki頁面上描述為早期原型,“將內聯類型[移動]到現有類型系統中。”

LW2(JVM)規范草案

丹·史密斯(Dan Smith)在標題為“ LW2規范草案 ”的消息中,在valhalla-spec-experts郵件列表上宣布“對值/內聯類的預覽功能質量規范的首次查看”。 該消息尋求對初始規范的反饋,并已基于該反饋進行了更新 。 這是一個進行中的工作,但是URL http://cr.openjdk.java.net/~dlsmith/inline-classes當前已設置為重定向到規范草案的當前版本。

與Valhalla相關的所有事情都還在進行中,并且可能會有所變化,但是有趣的是,在本規范草案中閱讀了從JVM規范的角度來看Valhalla當前的發展方向。 以下是文檔中一些更有趣的要點的示例( 可能會發生變化 ):

  • “本文檔描述了對Java虛擬機規范的更改,該更改由JVM類型的改進處理進行了修改,以支持內聯類 。”
  • reference類型有五種:標識類類型,內聯類類型,數組類型,接口類型和對象類型。 它們的值是對對象的引用。”
  • “大多數引用類型都是可為空的,這意味著特殊的空引用(表示沒有對象)是該類型的值。 一些引用類型是無空值的,這意味著null不是該類型的值。”
  • “ 標識類類型為在類文件中定義的非內聯,非接口類命名(不包括特殊類Object)。 身份類類型可以為空。”
  • “ 內聯類類型為在class文件中定義的內聯類命名。 對于每個內聯類,都有一個可為空和無空的內聯類類型。 這些類型共享相同的一組值,但null除外。”
  • “ 數組類型由具有單個維度的組件類型組成(其長度未由類型指定)。 數組類型的組件類型可以是boolean ,任何數字類型或任何引用類型。 數組類型可以為空。”
  • “ 接口類型為在class文件中定義的接口命名。 接口類型可以為空。”
  • “ Object類型為Object類命名。 Object類型可以為空。 … Object類的實例具有標識,但沒有字段,其行為類似于標識類實例。”
  • “可為空的引用類型的默認值為null。 無空內聯類類型的默認值是對類實例的引用,該類實例的字段均具有其類型的默認值。”

OpenJDK Valhalla Wiki:L世界

OpenJDK Valhalla Wiki頁面“ L-World ”詢問并回答“ 什么是內聯類型? ”和“ 什么是L-World項目? ”在回答這些問題時,該頁面當前將內聯類型描述為“小型,不可變,無身份的類型”,這些類型“ 以前稱為 “值類型”, 現在稱為 “內聯類型”。 當前頁面將“ L-World項目”描述為“將內聯類型引入語言和JDK的一系列早期原型 ”,其“基于先前的最小值類型原型(MVT)的工作”。

OpenJDK Valhalla Wiki:LW2

OpenJDK Valhalla Wiki頁面“ LW2 ”將LW2原型描述為“先前原型的迭代,為“內聯類型”(以前稱為“值類型”)添加了進一步的語言支持和JDK API支持。” 該頁面指示LW2原型基于JDK 14 分支,并且該頁面包含“內聯類型”的幾個當前特征,我在此處列出其中一些:

  • “內聯類型不能聲明顯式超類(對象除外)。”
  • “內聯類的所有實例字段都是隱式最終的。”
  • “通過'?'對內聯類型的'間接'投影 操作員。”
  • “ javac自動生成僅根據實例的狀態而不是根據其身份計算的hashCode , equals , longHashCode和toString ”
  • “ javac允許使用== , !=比較內聯類型”
  • “不能將內聯類型分配為null,不能將null強制轉換為內聯類型或與內聯類型進行比較,但使用'?'的'間接'引用除外。 操作員。”
  • 可能要添加到java.lang.Class的新方法: isInlineClass() , asPrimaryType() , asIndirectType() / isIndirectType() , asNullableType() / isNullableType() 。
  • 內聯類型不能同步 ,不能序列化 ,不能將自己引用為直接字段,也不能分配為null 。

Valhalla搶先體驗版

在撰寫本文時,“ Valhalla 搶先體驗版 ” 頁面 (現已更名為“ Project Valhalla'L-World Inline Types'Early -Access Builds”)功能為“ Build jdk-14-valhalla + 1-8(2019/7/4) 。 ” 該頁面以以下段落打開:“這是Valhalla項目的早期訪問版本,旨在測試L-World內聯類型的原型實現。” 該頁面還提到:“此構建基于JDK 14的不完整版本。” 與早期訪問版本一樣,使用早期訪問版本存在一些限制和免責聲明。 聽起來好像有計劃“通過錯誤修復和性能更新”定期更新這些版本。

OpenJDK Valhalla Wiki:LW2命令行選項 / p>

對于希望測試LW2原型的開發人員, OpenJDK Valhalla Wiki頁面“ LW2命令行選項 ”中列出了命令行選項 。 如頁面本身所述,“它描述了實驗性Java編譯器,Java啟動器和HotSpot JVM的命令行,以支持Valhalla項目中的L-World LW2內聯類型。”

2019年6月19日Valhalla專家組會議的會議紀要

Karen Kinnear提供了2019年6月19日Valhalla專家組會議的會議記錄 ,該會議記錄提供了有關專家組思想的設計主題的見解(“可空的”,“可展平的”,“不可感染性”,“專用仿制藥”)。 這些注釋表明LW2規范草案的討論并非旨在最終確定所有設計決策。

結論

將“內聯類型”(以前稱為“值類型”)完全引入Java仍需要大量工作。 但是,當前對“內聯類型”的關注以及與此概念相關的工件和構建物證明了在具體方向上正在取得進展。

翻譯自: https://www.javacodegeeks.com/2019/07/valhalla-lw2-progress-inline-types.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Valhalla LW2的进展–内联类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。