相关疑难解决方法(0)

如何处理"java.lang.OutOfMemoryError:Java堆空间"错误?

我正在Java 5上编写一个客户端Swing应用程序(图形字体设计器).最近,我遇到了错误,因为我对内存使用情况并不保守.用户可以打开无限数量的文件,程序将打开的对象保存在内存中.经过快速研究后,我在5.0 Java虚拟机中找到了人体工程学,其他人在Windows机器上说JVM默认最大堆大小为.java.lang.OutOfMemoryError: Java heap space64MB

鉴于这种情况,我该如何处理这种约束?

我可以使用java的命令行选项增加最大堆大小,但这需要找出可用的RAM并编写一些启动程序或脚本.此外,增加到一些有限的最大值并不能最终摆脱这个问题.

我可以重写我的一些代码来经常将对象持久化到文件系统(使用数据库是一回事)来释放内存.它可以工作,但它可能也很重要.

如果您可以向我指出上述想法的细节或某些替代方案,如自动虚拟内存,动态扩展堆大小,这将是很好的.

java jvm heap-memory out-of-memory java-ee

395
推荐指数
21
解决办法
123万
查看次数

java.lang.OutOfMemoryError:Java堆空间

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

java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)

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

  1. 据我所知,堆空间仅由实例变量占用.如果这是正确的,那么为什么在运行正常一段时间之后发生此错误,因为在创建对象时分配了实例变量的空间.

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

  3. 我应该对我的程序进行哪些更改,以便它可以减少堆空间?

java multithreading heap-memory out-of-memory

94
推荐指数
7
解决办法
28万
查看次数

标签 统计

heap-memory ×2

java ×2

out-of-memory ×2

java-ee ×1

jvm ×1

multithreading ×1