ホームページ >テクノロジー周辺機器 >IT業界 >JVMLS 2016:Java Virtual Machine Language Summitの要約

JVMLS 2016:Java Virtual Machine Language Summitの要約

William Shakespeare
William Shakespeareオリジナル
2025-02-18 10:26:10521ブラウズ

JVMLS 2016: A Recap of Java Virtual Machine Language Summit

2016 Java Virtual Machine Language Summit:jvmの未来を探しています

2016 Java Virtual Machine Language Summit(JVMLS)は、言語デザイナーとJVMエンジニアを集めて、JVMの将来の開発とJava言語への影響について議論します。サミットは、Project Jigsaw、Project Valhalla、Virtual Machinesの未来などの重要な問題に焦点を当てています。

モジュラー:プロジェクトジグソー

プロジェクトJigsawは、Java 9のコア機能であり、Java言語のモジュラーメカニズムを導入しています。開発者は、信頼性の高い構成、強力なパッケージング、スケーラビリティ、セキュリティ、パフォーマンスの向上を可能にするモジュールを作成できます。 Java 9では、モジュール(基本的に新しい構造 - モジュール記述子を含むJARパッケージ)を作成できます。モジュール記述子は、モジュール名を指定し、必要なモジュールをリストし、パッケージをエクスポートすることにより、モジュールを記述します。実行時に、モジュールは主に(読みやすさ)に依存するモジュールのみを表示し、モジュールが読み取られ、モジュールがそのタイプを含むパッケージをエクスポートする場合、他のモジュールのタイプ(アクセシビリティ)のみにアクセスできます。これは、コンパイラとJVMが最終的にすべてのコードと依存関係を組み込んだ大きな泥ボールパターンを放棄し、ソフトウェア構造の理解に近い実際のマップに置き換えたことを意味します。コンパイラとJVMの両方がこのグラフを理解しているため、欠落しているモジュール、同じモジュールの複数のバージョン、または複数のモジュールがコンピレーションまたは起動中に同じパッケージをエクスポートし、検出が困難なランタイムエラーまたは微妙なエラーを回避します。

値タイプ:Project Valhalla Project Valhallaは、ユーザー定義のプリミティブタイプとして要約できる値タイプを導入するように設計されています。値タイプは原始タイプと同じであり、メモリオーバーヘッドまたは間接的なアドレス指定を負いません。 2つのINTフィールドxとyを含むカスタムポイントは、その使用場所にインラキングされ、2つのINTに必要なメモリのみが必要であり、ポイントの配列は本質的にx/yペアの配列です。元のタイプと同様に、そのようなポイントは識別されません - 5の値を持つ2つの異なる整数オブジェクトがありますが、5の2つの異なるINT値はできません。クラスと同様に、値タイプにはメソッドとフィールドを持ち、インターフェイスを実装できます。したがって、そのスローガンは、「クラスのようにコーディングし、intのように機能する」です。これにより、優先抽象化と必要なパフォーマンスの間でトレードオフすることができなくなります。

しかし、プロジェクトはすぐにトラックから逸​​脱しました。私たち全員が知っているように、ジェネリックはプリミティブタイプで動作しません - arrayList

は作成できません。これは、8つの原始的なタイプではすでに苦痛です(StreamやTroveなどのライブラリのプリミティブタイプの専門化を参照)が、開発者がより多くのタイプを定義できる場合は耐えられなくなります。 (今日のプリミティブタイプのように)ジェネリックと対話するために値の種類をボックス化する必要がある場合、それらの使用は非常に限られており、開始されません。

したがって、値タイプのジェネリックを使用できる必要があります。プリミティブタイプを一緒に使用することもできます。最終的には、ArrayList またはArrayList をインスタンス化するだけでなく、それぞれint []またはPoint []でサポートされます。これは専門化と呼ばれ、まったく新しいパズルが開きます。

運がよければ、それらの一部またはすべてがJava 10に含まれます。

JVMLS 2016: A Recap of Java Virtual Machine Language Summit

仮想マシンFuture

ジョン・ローズは、仮想マシンを未来に引き付けるいくつかの方向について話しました:

オブジェクト、値、配列、メソッドなどの統一されたモデル
  • 密度の向上と共有によるメモリ効率の向上、ホットスポットパスの継続的な最適化など、パフォーマンスを継続的に改善します
  • コア抽象としてスレッドを超越する繊維を使用した微調整された並行性
  • より有用で互換性があり、相互運用可能になります - それとネイティブ言語で実行されている言語のために、それらの間のギャップを埋める
  • スタックは具体化されています。スタックは、文字列としてだけでなく、クラスとメソッドを実際のオブジェクトとして保持し、各フレームの完全なコンテキスト(ローカル変数、モニターなど)が表示され、プログラムがスタックを編集できます
  • 多くのコンテンツは私の理解を超えていますが、彼のスピーチを聞くことは、たとえそれが彼の情熱を感じるだけであっても、まだ多くの利益をもたらしました。
ローズの見通しの精神と一致しているのは、プロジェクトパナマ(「Going Native」でMikel VidstedtとTobi Ajilaが議論した)で、Ian Gravesは「Java Vector API」を補完します。クリスチャン・ウィマーの「1つのコンパイラ」のデモは、ギャップを埋めることも目的としています。

概要

JVMは、多くの賢い人々がその複雑さを制御しながらそれをより強くするために取り組んでいる強力なツールです。

2016 JVM言語サミットに関するFAQ

(この部分は元のテキストと同じ、省略)

以上がJVMLS 2016:Java Virtual Machine Language Summitの要約の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。