貌似前面一篇的存储空间的测试木有弄上来。。。这里在把代码附上吧:
package cn.java1118;
public class TestMemory {
public static void main(String[] args) {
System.out.println("刚开始时----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
System.out.println("刚开始时----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
System.out.println("刚开始时----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
//调用完一个hashmap之后
MyHashMap04<String, String> map = new MyHashMap04<String, String>();
for(int i=0;i<1000000;i++){
map.add(""+i, ""+i*100);
}
System.out.println("调用了hashmap之后----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
System.out.println("调用了hashmap之后----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
System.out.println("调用了hashmap之后----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
//开辟同样大的数组空间之后
// String[] aaa = new String[1000000];
// for (int i = 0; i < 1000000; i++) {
// aaa[i] = new String("aaa");
// }
// System.out.println("调用数组之后----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
// System.out.println("调用数组之后----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
// System.out.println("调用数组之后----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
}
}
刚开始时----虚拟机上空闲的内存量为:4868664
刚开始时----虚拟机上内存总量为:5177344
刚开始时----虚拟机试图使用的最大内存量为:832438272
调用数组之后----虚拟机上空闲的内存量为:16260656
调用数组之后----虚拟机上内存总量为:44433408
调用数组之后----虚拟机试图使用的最大内存量为:832438272
刚开始时----虚拟机上空闲的内存量为:4905008
刚开始时----虚拟机上内存总量为:5177344
刚开始时----虚拟机试图使用的最大内存量为:832438272
调用了hashmap之后----虚拟机上空闲的内存量为:69518912
调用了hashmap之后----虚拟机上内存总量为:169803776
调用了hashmap之后----虚拟机试图使用的最大内存量为:832438272
这是我测试了几次的效果。。。每次测试的时候都是使用hashmap比数组所余下的空间要大一些,为了试验的准确性,我是顺者测,逆着测,重启eclipse测,开机重启测。。。各种测啊。。。结果都差不多。。。终于搞定了!!!!!
但我发现了,我的代码还得大大修改。。。暂时先这样吧。。。
<!--EndFragment-->