java - 如何解决OutOfMemory错误?

标签 java jvm out-of-memory

对于学校项目,我必须编写不同类型的算法。问题是,我有一个有效的算法。但我必须运行它几次,一段时间后它给了我以下错误:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

我知道这个错误是什么意思,但是是否可以让Java在运行过程中搜索空闲空间?我知道它占用了大量空间,而这些空间在某些时候没有被使用。它在应用程序运行期间将很多对象设置为 null 并创建很多新对象,因此会耗尽内存。

那么具体:是否可以让 JVM 释放一些设置为 null 的空间?或者在程序运行时释放一些空间?我知道我可以将 JVM 设置为更多空间,但迟早我会遇到同样的问题。

如果您需要我的 IDE(如果它是特定于 IDE 的),那么它就是 Eclipse。

最佳答案

请在 google 上搜索“垃圾收集”。 Java 总是希望重用不使用的对象的空间。如果内存不足,您要么需要使用 -Xmx 来配置更多内存,要么必须修复代码以保留更少的对象。您可能会发现像 jvisualvm 这样的分析器可以帮助您找到浪费的内存使用情况。

关于java - 如何解决OutOfMemory错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8902989/

相关文章:

java - 如何调试 JVM 资源加载?

c++ - C/C++ : How can I know the size of used flash memory?

java - 图像处理

java - Minor GC 和 Full GC 同时进行?

java - "java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached"如果程序由 cron 启动

java - lambda 函数的引用在哪里?

java - 生成大型列表的笛卡尔积时出现 OutOfMemoryError

tfs - 从 ClearCase 迁移到 TFS - 内存不足异常

java - 在 Android 应用程序中集成 map 时出现错误

Java线程问题