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. Scalaでインスタンス化されていないクラスを参照するにはどうすればよいですか?
- 3. PHPクラスが読み込まれない
- 4. 同じクラスで使用されているマップ参照クラス
- 5. python - クラスが引数でインスタンス化されていることをテストします。
- 6. Gradle ShadowJar出力に難読化されたクラスと難読化されていないクラスが含まれています
- 7. クラスがロードされているjavaのインスタンスを特定する方法
- 8. 受信オブジェクト参照がvb内のネストされたクラスのオブジェクトのインスタンスに設定されていない
- 9. CSSクラスからの継承がLessファイルに含まれていない/参照されていない
- 10. C++でテンプレート化されていないクラスでテンプレート化されたクラスを "ラップ"できますか?
- 11. 参照はクラスに渡された後getUpdatedされていませんか?
- 12. org.hibernate.MappingException:Userクラスのための協会の参照マップされていないクラス
- 13. Ext.すでにインスタンス化されているクラスを返す。
- 14. クラスがnewキーワードを使用してjavaでインスタンス化されると、階層内のすべてのスーパークラスはインスタンス化されますか?例について
- 15. Proguard:参照されているクラスが見つかりませんjp.co.opto.opnsdk.R $ string
- 16. Proguard:参照されているクラスが見つかりません
- 17. クラスがオートロードされていません
- 18. com.sun.jersey.api.view.Viewableが解決できません。間接参照されています。クラス
- 19. クラスが参照型とみなされるのはなぜですか?
- 20. インスタンス変数がPHPクラスで参照されているときにメソッドを実行しますか?
- 21. どちらが速いですか?ネストされたクラスまたはネストされていないクラス
- 22. 封印されたクラスのコレクションを作成するために基本クラス(封印されていない)を参照してください
- 23. インスタンス化されたクラスをインポートすると、グローバルプロトタイプが設定されます
- 24. 自己参照をインスタンス化されたクラスに渡す
- 25. Java ME:javax.microeditionクラスが実装されていないようです
- 26. &このインスタンス化されたクラスのアドレス?
- 27. .nswagファイルで定義されていないC#クラスを参照することはできますか?
- 28. クラスはインスタンス化されます
- 29. Tomcatで読み込まれたクラス数が増え続けています
- 30. ビルドされたJavaクラスは変更されていません
Java言語仕様とJVM仕様を読んで、クラスロードの複雑さを理解してください。 StackOverflowではあまりにも幅広く、他の場所では既によく文書化されています。 –