相关疑难解决方法(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中捕获内存不足?

我正在开发一个需要大量内存的程序,我想在发生内存不足异常时捕获.我听说这是不可能做到的,但是如果在这方面有任何发展,我很好奇.

java exception out-of-memory

52
推荐指数
7
解决办法
8万
查看次数

在Java中,当对象无法实例化时会发生什么?

我来自c ++背景,我发现自己经常在java中这样做:

SomeClass sc=new SomeClass();

if(null!=sc)
{
    sc.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是,如果构造函数由于某种原因(例如可能没有足够的内存)而失败,那么变量sc中会出现什么.我找不到一个直接的答案,我担心我只是在浪费时间,因为如果新的操作员失败,程序会崩溃吗?

java creation object instantiation new-operator

9
推荐指数
2
解决办法
5512
查看次数