下面的代码会不会产生
内存溢出?
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)) ??
改不改是同样的效果。