Java Modular System Personal Summary

1. Javaモジュラーシステム

JDK9が導入され始めました。その目的は、モジュール化の主要な目標を達成できるようにするために、構成可能なパッケージング分離メカニズムです。

構成可能なパッケージング分離メカニズムは、主に次を解決します。

[1]まず、JDK9の前にClassPathに基づいて依存関係を見つけるという信頼性の問題を解決する必要があります。

[2]また、元のクラスパスにあるクロスJARファイルのパブリックタイプのアクセシビリティ問題を解決します。

 

2.モジュールの互換性

2.1モジュールの下位互換性

構成可能なパッケージ分離メカニズムを従来のクラスパス検索メカニズムと互換性を持たせるために、JDK9はクラスパスとモジュールパスの概念を提案しました。

クラスライブラリがモジュールであるか従来のJARパッケージであるかは、それが格納されているパスにのみ依存します。

2.2モジュール式システムは、従来のクラスパスの依存関係に依存するJavaプログラムが変更なしでJDK9以降のバージョンで直接実行できるようにするために、次の3つのルールに従います。

[1]クラスパス内のJARファイルアクセスルール:

 

[2]モジュールパスのモジュールアクセスルール:

[3]モジュールパスのJARファイルアクセスルール:

2.2モジュール間の管理と互換性の問題

Javaモジュラーシステムは現在、依存関係を管理および制約するためのモジュール定義へのバージョン番号の追加をサポートしておらず、それ自体が複数のバージョン番号およびバージョン選択関数の概念をサポートしていません。

モジュールのランタイムデプロイメントおよび置換機能は、JavaモジュラーシステムおよびJava仮想マシンに組み込まれていないため、クラスローダーを通じて実装する必要があります。

 

3.モジュール化されたクラスローダー

互換性を確保するために、JDK 9は、JDK 1.2から20年間実行されている3層クラスローダーアーキテクチャと親委任モデルを根本的に揺るがしていません。

ただし、モジュール式システムを円滑に実装するために、モジュール化されているクラスローダーには、注意すべきいくつかの変更が加えられています。

[1]まず、拡張クラスローダーがプラットフォームクラスローダーに置き換えられます。もちろん、<JAVA_HOME> \ lib \ extディレクトリを保持する必要はありません。

【2】BuiltinClassLoader。

JDK9以前のクラスローダーの継承構造:

JDK9以降のクラスローダーの構造:

JDK9以降のクラスローダーの委任関係:

Javaモジュールシステムでは、3つのクラスローダーが、読み込まれたそれぞれのモジュール、つまり上記の属性関係に責任を負うことを明確に規定しています。

 

162件の元の記事を公開 30 90,000ビューを獲得 +

おすすめ

転載: blog.csdn.net/ScorpC/article/details/105651300