2010-11-16 27 views
7

Zayıfhashmap, anahtarın biriyle ilgili bir referansın, özellikle de havuzun havuzlanmış bir String olması durumunda şimdi nasıl olduğunu anladığı gibi nasıl?zayıfhashmap nasıl çalışır?

String myKey = "somekey"; 

yerine kullanmalısınız::

String myKey = new String("somekey"); 

İkinci durumda Dize ise

+3

Bu, http://stackoverflow.com/questions/154724/when-would-you-use-a-weakhashmap-or-a-weakreference yardımcı olacaktır –

cevap

3

Sen (iyi yapabilirsiniz ama anlamı yok olurdu) WeakHashMap ile dize değişmezleri kullanmamalıdır havuzlanmadı.

+0

Bu örnekler aynıdır. Bir String değişmezi bir String'dir. Herhangi bir String'in hiçbir (güçlü/normal) referansı olmadığı bir aşamada, toplanan çöpler olacaktır. – Andy

+0

Tam olarak aynı değil: http://stackoverflow.com/questions/10578984/what-is-string-interning –

1

'Eski' kelimesi kesin değildir. Söz konusu durum 'çöp toplama'. Anahtar çöp toplandığında, WeakHashMap öğesinden bir değer kaldırılır. Dönemi.