java.lang.OutOfMemoryError:java列表中的java堆空间<;地图<&燃气轮机&燃气轮机;
我在键入java.lang.OutOfMemoryError:java列表中的java堆空间<;地图<&燃气轮机&燃气轮机;,java,Java,我在键入列表时遇到问题。我定义了一个Map变量,其中包含一个项目(size=1),然后在另一个列表中添加该变量的克隆。但是,当我在下一步阅读时,我对列表中读取的项目(Map)有一个奇怪的问题,因为读取的变量的大小很大,即使添加的变量的大小为1 为什么会这样 List<PlacementElementByHost> Placement_Queue = new LinkedList<>(); while(...){ PlacementElementByHost firs
列表时遇到问题。我定义了一个Map
变量,其中包含一个项目(size=1),然后在另一个列表中添加该变量的克隆。但是,当我在下一步阅读时,我对列表中读取的项目(Map
)有一个奇怪的问题,因为读取的变量的大小很大,即使添加的变量的大小为1
为什么会这样
List<PlacementElementByHost> Placement_Queue = new LinkedList<>();
while(...){
PlacementElementByHost first=new PlacementElementByHost(Placement_Queue.get(0));
Placement_Queue.remove(0);
PlacementElementByHost new_element=new PlacementElementByHost();
new_element.migrationMap.add(new HashMap<>(migrate));
for(...){
Placement_List.add(new PlacementElementByHost(new_element));
}
}
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅。请尝试增加vm内存。Java堆空间错误不是溢出。列表的大小
与它包含的对象的大小无关。可能是重复的感谢Eypros的帮助,但是我知道first.migrationMap
的大小不应该太大,因为for
循环只执行了198次,但是first.migrationMap
中添加的项是1341312<代码>第一个。migrationMap
应该只有一个项目(大小=1)。尽管我尝试将虚拟机内存增加到1500m,但结果与以前一样。我发现了问题。问题来自一个List
变量,该变量是其所用函数中的一个参数,定义为一个扩展参数,我在一个对象中添加了这个参数,在另一个List
中添加了对象。因为我的参数状态(
PlacementElementByHost first=new PlacementElementByHost(Placement_Queue.get(0));