簡體   English   中英

如何解決OutOfMemoryError:Java堆空間

[英]How to solve OutOfMemoryError: Java heap space

運行此代碼時出現此錯誤

private static List<Integer> array(int num) {
       List<Integer> value = new ArrayList<>();

        while (num != 1) {
            if(num % 2 == 0) {
             value.add(num + 2);
             }else {
              value.add(num * 3 + 1);
             }
        }
       System.out.println(value);
        return value;
    }

我能得到什么錯的解釋嗎?

您有一個無限循環。 每次迭代都會添加到列表中,直到您運行OutOfMemory。 您需要在循環過程中更改num的方式,使其在某些時候變為1 ,以便循環結束。

您的while條件永遠不會等於false,因此循環無限循環。 正如shmosie所說,您永遠不會修改num ,所以也許要研究num的修改,或對其進行一些操作,使其實際上等於1,以使循環停止

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM