2

実行中のプログラムに動的にロードされた jar がある場合、jar 内のすべてのコンテンツ (クラス、リソース) は VM メモリのどこかに保存されますか?

クラスまたはテキスト リソース ファイルにアクセスする必要があるたびに (たとえば、getClass().getResourceAsStream を介して)、ファイル システム内の jar に再​​度アクセスするのではなく、メモリからすばやくプルできるようにするには? つまり、その後jarを削除できます。

申し訳ありませんが、間違った質問をしている場合は、特にjarに詰め込まれたリソースについて、誤解している可能性があるため、質問をクラスローダープロセスの説明に変更してください。ありがとうございました。

4

1 に答える 1

5

いいえ、通常、リソースはアクセスするまでディスクからロードされません。

クラスはメモリにロードされ、最初の使用後もメモリに残ります。リソースは JVM または JRE レベルでキャッシュされません。呼び出すたびgetResourceAsStreamに、ディスクから新しいストリームが取得されます。

于 2015-02-18T00:05:23.867 に答える