[英]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.