首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

下面的代码会不会产生内存溢出?解决方法

2012-01-26 
下面的代码会不会产生内存溢出?Map mapnew LinkedHashMap()//linkedHashMap按set进去先后顺序排序的whil

下面的代码会不会产生内存溢出?
Map map=new LinkedHashMap();//linkedHashMap按set进去先后顺序排序的
while(iter.hasNext()){
Quest quest = iter.next();
List<QuestOption> list = trainPlanService.findQuestOption(quest);
map.put(quest, list);
}

return map;

//按照网上的说法,list变量没有被map持有,不会被释放
建议改成 :map.put(quest,trainPlanService.findQuestOption(quest)) ??

[解决办法]
试试WeakHashMap?
[解决办法]
局部变量的作用域在{}里
除了{}这个范围后,GC会自动回收的
所以不用管它
[解决办法]
应该是会释放的,你看的那个帖子说不能被释放啊
[解决办法]
(1)只要map不释放,map里面存的东西当然你也就没法释放,除非是map自己把里面的元素remove掉
(2)建议改成 :map.put(quest,trainPlanService.findQuestOption(quest)) ??
改不改是同样的效果。

热点排行