我按照你说的写了一段代码试了一下:
public class LoopTest {
public static int[] loopTest(int k) {
int[] retVal = new int[k];
for (int i = 0; i < k; i++) {
retVal[i] = k + 100;
}
return retVal;
}
public static void main(String[] args) {
int[] arr = loopTest(100000000);
System.out.println("===========================================");
// System.out.println(ArrayUtils.toString(arr));
}
}
结果:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at LoopTest.loopTest(LoopTest.java:5)
at LoopTest.main(LoopTest.java:13)
出现堆内存溢出的异常,往数组中追加一亿个元素导致内存不足,无法再追加对象,
导致发生这个异常,可以适当加大JVM的内存设置大小来解决该问题,但是数字还是有限制的。