ホームページ >テクノロジー周辺機器 >IT業界 >JVMLS 2016: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
仮想マシンFuture
ジョン・ローズは、仮想マシンを未来に引き付けるいくつかの方向について話しました:オブジェクト、値、配列、メソッドなどの統一されたモデル
概要
JVMは、多くの賢い人々がその複雑さを制御しながらそれをより強くするために取り組んでいる強力なツールです。
2016 JVM言語サミットに関するFAQ
(この部分は元のテキストと同じ、省略)以上がJVMLS 2016:Java Virtual Machine Language Summitの要約の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。