📜  Java.util.WeakHashMap类(1)

📅  最后修改于: 2023-12-03 15:16:02.958000             🧑  作者: Mango

Java.util.WeakHashMap 类

Java.util.WeakHashMap 是 Java 中的一种 Map 实现,具有类似于 HashMap 的功能,但可以自动删除不再被引用的键。

它通过使用弱引用来实现这一点,因此如果没有外部引用指向它,就可以回收对象。这种特殊的行为使 WeakHashMap 成为一种非常有用的工具,特别是在需要缓存对象和避免内存泄漏的情况下。

用法示例

下面的示例演示了如何使用 WeakHashMap

import java.util.WeakHashMap;

public class Main {
  public static void main(String[] args) {
    WeakHashMap<String, String> weakHashMap = new WeakHashMap<>();
    
    String key1 = "key1";
    String value1 = "value1";
    weakHashMap.put(key1, value1);
    
    String key2 = "key2";
    String value2 = "value2";
    weakHashMap.put(key2, value2);
    
    // 删除 key1 的引用
    key1 = null;
    
    // 强制垃圾回收,如果 key1 不再被引用,那么 key1 和 value1 会被从 WeakHashMap 中删除
    System.gc();
    
    System.out.println(weakHashMap); // {key2=value2}
  }
}

在此示例中,我们创建了一个 WeakHashMap 并将两个键值对放入其中。然后,我们删除了第一个键的引用,并强制进行垃圾回收。在回收之后,只有第二个键值对保留在 WeakHashMap 中,因为第一个键值对不再有引用。

总结

Java.util.WeakHashMap 是一种非常有用的 Map 实现,可以自动删除不再被引用的键。它可以用于缓存对象和避免内存泄漏。但是需要注意,在使用 WeakHashMap 时,需要避免创建过多的对象,否则可能会导致性能问题。