java.lang.OutOfMemoryError : Java heap space for java 8 错误

标签 java recursion out-of-memory java-8

出现此错误时我使用 Java 8(在 Eclipse 中):

java.lang.OutOfMemoryError: Java heap space

我试过 -Xmx 命令,但没有用,即使更改 MetaspaceSize 也无法解决问题。当我尝试交换列表的元素(它的大小 <= 395)时会出现此问题。

public void permutation(double[] arr, int pos, ArrayList<double[]> list) {
    if (arr.length - pos == 1)
        list.add(arr.clone());
    else
        for (int i = pos; i < arr.length; i++) {
            swap(arr, pos, i);
            permutation(arr, pos + 1, list);
            swap(arr, pos, i);
        }
}

最佳答案

更改分配的堆空间量不会解决问题。

您的堆正在被用完,因为您正在创建数量惊人的对象并查看您正在尝试实现的目标,这可能是您的代码中的错误。

您需要调试您的应用程序以确定所有对象的创建位置以及垃圾收集器无法清除它们的原因。

关于java.lang.OutOfMemoryError : Java heap space for java 8 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926528/

相关文章:

java - for循环是OutOfMemoryError的原因吗? ( eclipse )

java - 用于查找字符串第一次出现的后缀的正则表达式

java - Eclipse 错误: -'The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files'

python - 列表索引超出范围(Python 3)

java - 线性搜索递归最后出现

java - 尝试在我的网络爬虫中运行几天时出现许多内存错误

java - Hibernate 单向与 MySQL DB 的一对一映射?

JavaFX 选择图像后将其设置到 ImageView

c# - 递归获取字符串的形式

android - Android应用程序中的OutOfMemoryError