5

クラスをキャッシュ用の弱いハッシュ マップ (WeakHashMap) のキーとして使用する価値はありますか? ご存知のように、クラス オブジェクトはプログラムの開始時に作成され、終了時に破棄されます。それで、それをする意味はありますか、それとも私はこれについて誤解していますか?

4

1 に答える 1

6

クラスは、クラスローダーがロードするときにロードされます。ClassLoaderがアンロードされると、そのクラスもアンロードされます。ClassLoaderは、すべてのクラスがクリーンアップされるまでアンロードできないため、クラスローダーをアンロードする場合は、クラスのWeakコレクションを使用することをお勧めします。

単純なJavaSeプログラムでは、2つまたは3つのクラスローダーが提供され、プログラムの存続期間中存続し、それらについて考える必要はありません。

ただし、Java EEやOSGiのようなコンテナーがある場合、これらは各アプリケーションまたは各モジュールを独自のクラスローダーにロードして、(JVMを再起動せずに)オンザフライでインストール、アップグレード、または削除できるようにします。

于 2012-09-25T07:48:26.030 に答える