它是如何知道这个钥匙已经老了并准备把它扔掉了?为什么字符串文字?
例如,
private static WeakHashMap<<? extends Object>, String> m =
new WeakHashMap<<? extends Object>, String>();
public static void A(){
Point p = new Point();
m.put(p, "a");
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着一旦A()返回,'p'键就会消失?
WeakHashMap没有做出那个决定; 相反,普通的Java垃圾收集过程会删除未引用的密钥.p一旦触发Java垃圾收集,密钥就会消失.
什么WeakHashMap做的是它使用弱引用来引用键,所以垃圾收集知道不计较WeakHashMap到地图键引用为"持有",在内存中的关键对象.
| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |