2010-11-16 41 views
7

Như thế nào weakhashmap hiểu rằng một tham chiếu đến một trong các khóa của nó là lỗi thời bây giờ đặc biệt là nếu khóa là một String được gộp lại?weakhashmap hoạt động như thế nào?

+3

Điều này sẽ giúp http://stackoverflow.com/questions/154724/when-would-you-use-a-weakhashmap-or-a-weakreference –

Trả lời

3

Bạn không phải sử dụng literals String với WeakHashMap (bạn cũng có thể nhưng sẽ không có điểm trong nó):

String myKey = "somekey"; 

thay vào đó bạn phải sử dụng:

String myKey = new String("somekey"); 

Trong trường hợp sau chuỗi không được gộp lại.

+0

Các ví dụ đó giống nhau. Chuỗi ký tự là một chuỗi. Ở một số giai đoạn sau khi bất kỳ chuỗi nào không có tham chiếu (mạnh/bình thường) với nó, nó sẽ được thu gom rác. – Andy

+0

Không hoàn toàn giống nhau: http://stackoverflow.com/questions/10578984/what-is-string-interning –

1

Từ 'lỗi thời' là không chính xác. Điều kiện được đề cập là 'thu thập rác'. Giá trị được xóa khỏi WeakHashMap khi và nếu khóa được thu gom rác. Giai đoạn.

Các vấn đề liên quan