今日、私はthis blog postを見つけ、キャッシュの上でWeakHashMap
の使用法を論じました。値はなく、キーは弱い参照として格納され、参照がもう生存していないときは、キーと値のペア全体がWeakHashMapから削除されているということに興味がありました。したがって、これは次が発生する原因となりますWeakHashMap - その目的は何であり、どのように正しく使用されるべきか
WeakHashMap map = new WeakHashMap();
SomeClass myReference1 = ....
map.put(new Long(10), myReference1);
// do some stuff, but keep the myReference1 variable around!
SomeClass myReference2 = map.get(new Long(10)); // query the cache
if (myReference2 == null) {
// this is likely to happen because the reference to the first new Long(10) object
// might have been garbage-collected at this point
}
私はその後、WeakHashMap
クラスを利用するだろうかシナリオ好奇心?
オートボクシングを使用すると、明示的に呼び出す必要はありません。 '新しいロング(10)'これで十分です: 'map.get(10L);' –
[WeakHashMapまたはWeakReferenceをいつ使うのですか?](http://stackoverflow.com/questions/154724/when-would-you-use- a-weakhashmap-or-a-weakreference) –
@Matt Ball、WeakHashMapのユースケースを他のコンストラクトと比較するのではなく、いくつかのユースケースを取得することになるので、これは重複しません。 –