クラスをキャッシュ用の弱いハッシュ マップ (WeakHashMap) のキーとして使用する価値はありますか? ご存知のように、クラス オブジェクトはプログラムの開始時に作成され、終了時に破棄されます。それで、それをする意味はありますか、それとも私はこれについて誤解していますか?
1 に答える
6
クラスは、クラスローダーがロードするときにロードされます。ClassLoaderがアンロードされると、そのクラスもアンロードされます。ClassLoaderは、すべてのクラスがクリーンアップされるまでアンロードできないため、クラスローダーをアンロードする場合は、クラスのWeakコレクションを使用することをお勧めします。
単純なJavaSeプログラムでは、2つまたは3つのクラスローダーが提供され、プログラムの存続期間中存続し、それらについて考える必要はありません。
ただし、Java EEやOSGiのようなコンテナーがある場合、これらは各アプリケーションまたは各モジュールを独自のクラスローダーにロードして、(JVMを再起動せずに)オンザフライでインストール、アップグレード、または削除できるようにします。
于 2012-09-25T07:48:26.030 に答える