小编Rum*_*ter的帖子

为什么WeakHashMap在GC之后拥有强大的价值参考?

WeakHashMap中的关键对象变得无法访问.并且应该在GC之后删除映射.但是对价值对象的强烈提及仍然存在.为什么?

使用番石榴弱键图可以观察到相同的行为.

预期产量:

...
refKey.get = null
refValue.get = null
Run Code Online (Sandbox Code Playgroud)

但我得到输出:

map.keys = []
map.values = []
map.size = 0
refKey.get = null
refValue.get = (123)
Run Code Online (Sandbox Code Playgroud)

码:

import java.lang.ref.WeakReference;
import java.util.Map;
import java.util.WeakHashMap;
import com.google.common.collect.MapMaker;

public class Test {

    static class Number {
        final int number;
        public Number(int number) { this.number = number; }
        public String toString() { return "(" + number + ")"; }
    }

    static class Key extends Number {
        public Key(int number) { super(number); }
    }

    static …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection weakhashmap guava

6
推荐指数
1
解决办法
642
查看次数

标签 统计

garbage-collection ×1

guava ×1

java ×1

weakhashmap ×1