[クラスローダー]

クラスのロード
あなたはクラスがまだロードによって、メモリにシステムをロードされていない場合は、クラスを使用したい場合は、このクラスが初期化されて達成するための3つの手順を初期化し、接続します。ロード
クラスファイルを参照するには、メモリに読み込まれ、そして誰がClassオブジェクトを作成します。
システムは、Classオブジェクトを構築する際に使用されている任意のクラス。
接続
正しい内部構造ことを確認し、他のクラスと調整
メモリを割り当てると、デフォルトの初期値を設定するための静的クラスメンバーの作成責任
バイナリデータクラスを解析する記号参照に直接参照を交換しています
初期化
私たちは、初期化の手順について説明しました
 
クラスの初期化タイミング
クラスのインスタンスを作成します。
アクセスクラスの静的変数、またはクラスの静的変数を呼び出す静的メソッドを割り当てます
このクラスのサブクラスに対応するクラスまたはインタフェースの初期化のjava.lang.Classオブジェクトの作成を強制的に使用して反射モード
マスタークラスを実行するために直接使用するのjava.exeコマンド
 
クラスローダ
内部に.classファイルをロードし、誰のための責任は、対応するClassオブジェクトを生成します。
私たちは、クラスローディング機構を気に、しかし、このメカニズムを理解していないが、我々はプログラムの理解を実行することができます。
作曲クラスローダ
ブートストラップクラスローダのルートクラスローダ
拡張クラスローダ拡張クラスローダ
Sysetmクラスローダシステムクラスローダ
 
演技のクラスローダ
ブートストラップクラスローダのルートクラスローダ
また、ブートストラップクラスローダとして知られていると、ロードJavaコアクラスを担当して
システム、文字列などというようにそのような。JDK、JREのlibディレクトリ下のrt.jarのファイルで
拡張クラスローダ拡張クラスローダ
ジャーにJRE拡張ディレクトリをロードするための責任。libディレクトリの下にJDK extディレクトリにあるJRE
Sysetmクラスローダシステムクラスローダ
javaコマンドからロードするクラスファイルを担当し、クラスパス環境変数に指定のjarパッケージおよびクラスパス時にJVMの起動

おすすめ

転載: www.cnblogs.com/zuixinxian/p/11275203.html