OutOfMemoryError
错误原因: java.lang.OutOfMemoryError: Java heap space 堆内存溢出
解决办法:调大堆内存大小
// -Xms1m -Xmx10m -XX:+PrintGCDetails
List<Object> listObject = new ArrayList<>();
for (int i = 0; i < 10; i++) {
System.out.println("i:" + i);
Byte[] bytes = new Byte[1 * 1024 * 1024];
listObject.add(bytes);
}
System.out.println("添加成功...");
StackOverflowError
错误原因: java.lang.StackOverflowError表示为栈溢出,一般产生于递归调用。
解决办法:设置线程最大调用深度,默认是1m
//-Xss5m 设置最大调用深度
public class StackTest {
private static int count;
public static void count(){
try {
count++;
count();
} catch (Throwable e) {
System.out.println("最大深度:"+count);
e.printStackTrace();
}
}
public static void main(String[] args) {
count();
}
}