📅  最后修改于: 2023-12-03 15:16:30.788000             🧑  作者: Mango
WeakHashMap
是 Java 语言中的一个类,属于集合框架中的一员,可以存储键值对,其中键是弱类型的。它的作用是提供了一种快速访问和进行键值对映射的方式。和其他 Map 的实现类一样,WeakHashMap
实现了 Map 接口,并且允许存储多个键值对,但是它对于对键的对象的引用采用了一种弱引用的方式。
WeakHashMap
有以下特性:
下面是一个使用 WeakHashMap
的简单例子:
import java.util.WeakHashMap;
public class Sample {
public static void main(String[] args) {
WeakHashMap<String, String> map = new WeakHashMap<>();
String key1 = "key1";
String value1 = "value1";
String key2 = "key2";
String value2 = "value2";
map.put(key1, value1);
map.put(key2, value2);
System.out.println(map.get("key1")); // 输出结果为 "value1"
key1 = null;
System.gc(); // 手动垃圾回收
System.out.println(map.get("key1")); // 输出结果为 null
}
}
上面的例子中,我们向一个 WeakHashMap
中添加了两个键值对,然后输出其中一个 key 对应的 value。接着我们手动将 key1 的引用设为 null,然后进行垃圾回收,再次输出 key1 对应的 value,此时输出为 null。
WeakHashMap
是一个可以避免内存泄露的 Map 实现类,对于对键的对象的引用采用了一种弱引用的方式,当某个 key 不再被引用时,该 key 将会被删除。在使用 WeakHashMap
时,应当避免对已经存在的对象进行引用,否则会造成内存泄漏。