Javaクラスがロードされると、このクラスで参照されている(インスタンス化されていない)クラスだけが読み込まれますか?参照クラスがインスタンス化されるか、静的フィールドに値が代入されるまで、ロードされないことがわかります。しかし、私はこの動作がJVMからJVMに変わることを知りました。本当ですか?Javaクラスがロードされると、このクラスで参照されている(インスタンス化されていない)クラスだけが読み込まれますか?
0
A
答えて
0
クラスをロードするために、これらの2つのオーバーロードされたメソッドがあります。
loadClass(name, resolve);
loadClass(name);
ここで解決するのはブール型フラグであり、真である場合には、参照されたクラスもすべて解決されます。 falseの場合、参照されたクラスはロードされません。
ロードするクラスについては、resolve変数は常にtrueになります。システムがloadClass()を再帰的に呼び出しているときにのみ、この変数を設定することができます。これは、要求されているクラスがすでに解決されていることを認識しているためです。
Here, loadClass(name); calls loadClass(name, false);
0
を使用した場合にのみ、クラスがロードされます。
ClassLoaderに何をしているのかを示すことで、それを「証明」するのはかなり簡単です。その動作についてはhereを参照してください。
I これは、と指定されています。 JVMのプロパティです。つまり、すべてのJVMがそうするべきです(詳細はhereを参照してください)。
あなたが見る - 他のものは意味をなさないでしょう。一部のクラスは、10、20の他のクラスを参照することがあります。 がロードされているときに、これらのクラスをすべてロードしたいですか?そして、Aのそれらの参照が参照しているすべての10、20のクラス?!あなたがそれらを必要とするかどうかを知らずに!
関連する問題
- 1. プリロードアセンブリ:参照されている、参照されていない、必要なまでロードされていない
- 2. PHPクラスが読み込まれない
- 3. Scalaでインスタンス化されていないクラスを参照するにはどうすればよいですか?
- 4. 同じクラスで使用されているマップ参照クラス
- 5. クラスがロードされているjavaのインスタンスを特定する方法
- 6. CSSクラスからの継承がLessファイルに含まれていない/参照されていない
- 7. C++でテンプレート化されていないクラスでテンプレート化されたクラスを "ラップ"できますか?
- 8. 参照はクラスに渡された後getUpdatedされていませんか?
- 9. org.hibernate.MappingException:Userクラスのための協会の参照マップされていないクラス
- 10. Ext.すでにインスタンス化されているクラスを返す。
- 11. Proguard:参照されているクラスが見つかりません
- 12. インスタンス変数がPHPクラスで参照されているときにメソッドを実行しますか?
- 13. クラスが参照型とみなされるのはなぜですか?
- 14. どちらが速いですか?ネストされたクラスまたはネストされていないクラス
- 15. 自己参照をインスタンス化されたクラスに渡す
- 16. &このインスタンス化されたクラスのアドレス?
- 17. Tomcatで読み込まれたクラス数が増え続けています
- 18. クラスはインスタンス化されます
- 19. データがロードされてプロトタイプセルが読み込まれている間に、テーブルビューのアクティビティインジケータが表示される
- 20. ビルドされたJavaクラスは変更されていません
- 21. Javaクラスjava.util.Iteratorインターフェイスが実装されていますか?
- 22. クラスで宣言されているインスタンスをグローバル化できますか?
- 23. クラスが参照されているかどうかを調べるC#
- 24. どのクラスが最も参照されているか調べるには?
- 25. 2つのクラスがインストールされていますが、1つだけが使用されます
- 26. マルチチェックボックスのクラスがロードされていません
- 27. .NETでクラスとネストされたクラスがどのようにインスタンス化されますか?
- 28. Capybaraの機能テストでJavascriptクラスが読み込まれない
- 29. インポートされたクラス内からインポートされたクラスを参照する
- 30. なぜ次のようにオブジェクトブラウザで参照されるクラスが示されている
Java言語仕様とJVM仕様を読んで、クラスロードの複雑さを理解してください。 StackOverflowではあまりにも幅広く、他の場所では既によく文書化されています。 –