Спасибо!
Я изучаю JVM и проверяю переполнение стека VM, обнаружил странное явление. Я вызываю метод рекурсивно двумя способами, но меня перепутали с результатом.
Параметры VM: -Xss108k -Xms10m -Xmx10m
public class T2 {
private int stackLength = 1;
public void stackLeak(){
long[] a = new long[2000]; //define this array or not
stackLength++;
stackLeak();
}
public static void main(String[] args) {
T2 oom = new T2();
try{ //
oom.stackLeak();
} catch(Throwable e){
System.out.println("stack length: " + oom.stackLength);
e.printStackTrace();
} finally{
}
}
}
Я повторял много раз, результаты почти одинаковые. Я думал, что массив сохранен в куче, это не повлияет на стек VM, но это имело место.