Java 中的 HashMap 与 WeakHashMap
有关 HashMap 和 WeakHashMap 的详细信息有助于区分它们,如下所示——
Java 中的 HashMap
HashMap 中有键值对,即与值相关联的键,且键是按任意顺序排列的。指定为键的 HashMap 对象没有资格进行垃圾回收。这意味着 HashMap 可以控制垃圾回收器。
演示这一点的程序如下——
示例
import java.util.*;
class A {
public String toString() {
return "A ";
}
public void finalize() {
System.out.println("Finalize method");
}
}
public class Demo {
public static void main(String args[])throws Exception {
HashMap hMap = new HashMap();
A obj = new A();
hMap.put(obj, " Apple ");
System.out.println(hMap);
obj = null;
System.gc();
Thread.sleep(5000);
System.out.println(hMap);
}
}以上程序的输出如下——
输出
{A = Apple }
{A = Apple }Java 中的 WeakHashMap
WeakHashMap 中有键值对,即它与 Java 中的 HashMap 非常类似。不同之处在于,指定为键的 WeakHashMap 对象仍然有资格进行垃圾回收。这意味着垃圾回收器可以控制 WeakHashMap。
演示这一点的程序如下——
示例
import java.util.*;
class A {
public String toString() {
return "A ";
}
public void finalize() {
System.out.println("Finalize method");
}
}
public class Demo {
public static void main(String args[])throws Exception {
WeakHashMap whMap = new WeakHashMap();
A obj = new A();
whMap.put(obj, " Apple ");
System.out.println(whMap);
obj = null;
System.gc();
Thread.sleep(5000);
System.out.println(whMap);
}
}以上程序的输出如下——
输出
{A = Apple }
Finalize method
{}
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP