1.loadClass, クラスのロード要求が来ると、まずキャッシュからクラスオブジェクトを見つけます。
直接リターンがある場合は、そうでない場合は、このタイプのロードの親ローダーに渡されます。ロードする親がない場合は、最上位のブート ローダーによってロードされます。それでも見つからない場合は、findClass() を使用してロードします;
2. FindClass
クラスのバイトコードを名前または位置でロードし、defineClass を使用します。通常はサブクラスの Class 実装によって行われますが、ClassLoader をカスタマイズする必要がある場合は、このメソッドをオーバーライドする必要があります。
3.defineClass
defineClass() メソッドは、バイト ストリームを JVM で認識できる Class オブジェクトに解析します (このメソッドのロジックは実装されています)このメソッドは、クラス ファイルを通じてクラス オブジェクトをインスタンス化するだけでなく、他のメソッドを通じてクラス オブジェクトをインスタンス化することもできます。たとえば、ネットワークを通じてあるタイプのバイトコードを受信し、それをバイト バイト ストリームに変換して、対応するクラスを作成します。オブジェクトを作成しますが、defineClass() メソッドは通常 findClass() メソッドと一緒に使用されます。通常、クラス ローダーをカスタマイズするときは、クラスローダーの findClass() メソッドを直接オーバーライドし、ロード ルールを記述します。クラスのバイトコードを取得した後、 () メソッドは、クラス ファイルを Class オブジェクトに変換するだけで、クラスの Class オブジェクトを生成します。
4.solveClassClass オブジェクトの作成後、同時に解決することもできます。
リンク フェーズでは主にバイトコードの検証、メモリの割り当て、クラス変数の設定、バイトコード ファイル内のシンボル参照の直接参照への変換が行われると前に述べました。
1. シンプル、基本概念を理解していれば、さまざまな状況に適したアプリケーションを作成できる; 2. オブジェクト指向; 3. 配布、 Java はネットワーク指向の言語です; 4. 堅牢性 Java はメモリ管理のための自動ガベージ コレクションを提供し、プログラマがメモリ管理時にエラーを起こすことを防ぎます。 ; 5. セキュリティ: ネットワークおよび分散環境で使用される Java は、ウイルスの侵入を防止する必要があります。 6. 中立的なアーキテクチャ。Java ランタイム システムがインストールされている限り、どのプロセッサでも実行できます。 7. 移植性。Java はネットワーク上のさまざまなマシンに簡単に移植できます。 8. 解釈と実行。Java インタープリターは Java バイトコードを直接解釈して実行します。
以上がJavaクラスローダーの一般的なメソッドは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。