Java堆空间不足错误:java.lang.OutOfMemoryError

109

我在执行多线程程序时遇到以下错误:

java.lang.OutOfMemoryError: Java heap space

上述错误发生在其中一个线程中。

  1. 据我所知,堆空间仅由实例变量占用。如果这是正确的,那么为什么在运行一段时间后会出现此错误,因为实例变量的空间在对象创建时就已分配完毕。

  2. 有没有办法增加堆空间?

  3. 我应该对我的程序进行哪些更改,以便使用较少的堆空间?


5
请访问 https://dev59.com/zXVD5IYBdhLWcg3wQZQg。该网页介绍如何处理Java堆空间错误,即OutOfMemoryError:Java Heap Space。建议通过增加Java虚拟机的堆内存来解决这个问题。 - JuanZe
12个回答

1
为了避免该异常,如果您正在使用JUnit和Spring,请尝试在每个测试类中添加以下内容:
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)

0
在NetBeans中,前往“运行”工具栏,-->“设置项目配置”-->“自定义”-->其弹出的窗口中的“运行”-->“VM选项”-->填写“-Xms2048m -Xmx2048m”。这可以解决堆大小问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接