如:
Map a =new HashMap();
Map a1=new HashMap();
a1.put(...);Map a2=new HashMap();
a2.put(...);a.put("a1",a1);
a.put("a2",a2);现在令a.clear();a=null;
理论上将a1,a2都应该可以被GC回收吧?
但是我的程序跑了长时间后就OUTOFMEMORY,总不见空间被释放. 实际上我的所有Map都是在一个方法内的局部变量,我认为就算我不clear应该都没问题,怎么感觉就是释放不调呢?有没XD遇到过一样的情况?
Map a =new HashMap();
Map a1=new HashMap();
a1.put(...);Map a2=new HashMap();
a2.put(...);a.put("a1",a1);
a.put("a2",a2);现在令a.clear();a=null;
理论上将a1,a2都应该可以被GC回收吧?
但是我的程序跑了长时间后就OUTOFMEMORY,总不见空间被释放. 实际上我的所有Map都是在一个方法内的局部变量,我认为就算我不clear应该都没问题,怎么感觉就是释放不调呢?有没XD遇到过一样的情况?
解决方案 »
- 接口究竟是不是类?
- double不稳定怎么解决
- 关于字符串数组的问题,求高手过来指点江山
- 如何调用DLL到本地来操作串口?
- JSP连接数据库出问题,请高手看下,谢谢
- 用java如何调用vc写的DLL
- Java有Group功能吗?
- java 中如何用SQL 查时间区间???急!!!!!
- jcreator pro 2.5,jdk1.4rc,这个接口怎么编译不了?
- 大家down了没有呀?这本jbuilder的教程!!http://cnopensource.org/down/jbguide.zip
- java自学之路的问题解决之道..(影响终生...!)
- 对象ObjectInputStream的文件操作,报java.io.StreamCorruptedException异常。
只是内容清空,不是内存清空.
内存的释放不是你决定的,是垃圾回收线程后台执行的
你试试显示调用垃圾回收看看,释放你的HashMap