代码
================
import java.util.*;public class Test extends Thread
{
public static void bb()throws Exception
{
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 10240; i++)
{
sb.append("test");
}
System.out.println("PUB");
Hashtable ht = new Hashtable();
for (int i = 0; i < 2000; i++)
{
ht.put(new Integer(i), i + sb.toString());
}
Thread.sleep(10000L);
System.out.println("REM");
for (int i = 0; i < 2000; i++)
{
ht.remove(new Integer(i));
}
System.out.println("SIZE:" + ht.size());
System.gc();
} public static void main(String[] args) throws Exception
{
System.out.println("start");
bb();
System.out.println("end");
Thread.sleep(10000L);
}
}
javac Test.java
java -Xmx512m Test
问题
==================
ht.remove(new Integer(i));// 删除之后,为什么java.exe占用的内存还是没有变化???System.out.println("end"); //就连打印出end之后java.exe占用的内存还是167,644k 为什么呀????
================
import java.util.*;public class Test extends Thread
{
public static void bb()throws Exception
{
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 10240; i++)
{
sb.append("test");
}
System.out.println("PUB");
Hashtable ht = new Hashtable();
for (int i = 0; i < 2000; i++)
{
ht.put(new Integer(i), i + sb.toString());
}
Thread.sleep(10000L);
System.out.println("REM");
for (int i = 0; i < 2000; i++)
{
ht.remove(new Integer(i));
}
System.out.println("SIZE:" + ht.size());
System.gc();
} public static void main(String[] args) throws Exception
{
System.out.println("start");
bb();
System.out.println("end");
Thread.sleep(10000L);
}
}
javac Test.java
java -Xmx512m Test
问题
==================
ht.remove(new Integer(i));// 删除之后,为什么java.exe占用的内存还是没有变化???System.out.println("end"); //就连打印出end之后java.exe占用的内存还是167,644k 为什么呀????
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货