2010-11-16 42 views
7

如同weakhashmap如何理解对其中一个关键字的引用现在已经过时,特别是如果关键字是集合的String?weakhashmap如何工作?

+3

这将有助于http://stackoverflow.com/questions/154724/when-would-you-use-a-weakhashmap-or-a-weakreference – 2010-11-16 16:35:38

回答

3

不得使用字符串常量与WeakHashMap中(当然你可以,但会有它没有任何意义):

String myKey = "somekey"; 

而必须使用:

String myKey = new String("somekey"); 

在后一种情况下,字符串不汇集。

+0

这些例子都是一样的。一个字符串文字是一个字符串。在任何String没有(强/正常)引用之后的某个阶段,它将被垃圾收集。 – Andy 2015-06-16 12:44:10

+0

不太一样:http://stackoverflow.com/questions/10578984/what-is-string-interning – 2015-06-22 14:14:40

1

'废弃'这个词是不准确的。有问题的情况是'垃圾收集'。当密钥被垃圾收集时,值将从WeakHashMap中移除。期。