我在我的一个java应用程序中得到了java.lang.OutOfMemoryError。我在eclipse中的“VM参数”下增加了最小和最大堆大小的大小:
-XX:+ HeapDumpOnOutOfMemoryError -Xmx8g -Xms2g 但是,我仍然得到同样的错误。在jconsole.exe中,它显示以下内容:
如果我理解正确,那么我仍然有足够的堆内存。
如您所见,它显示问题,但只有9 MB。那究竟是什么问题呢?我不应该有足够的免费堆内存吗?
答案 0 :(得分:1)
与java没有严格的关系,但这也可能是因为你试图在你的记忆中存储一些不适合所有地方的东西。
考虑在每个停车位之间设有金属条的停车场。 有20个空摩托车点。 你想停放你的SUV。 即使可用空间的总面积大于您的车辆要求,您仍然无法停放,因为它无法适应任何一个地点。
我不知道这是否是这种情况,但这是我遇到这个问题的最常见原因。
您是否尝试存储比发生此错误的任何地方更大的东西?