五 、 StackOverflowError
java.lang.StackOverflowError, desbordamiento de pila. La razón más común es que la recursividad del método es demasiado profunda
Ejemplo:
public class TestStackOverflowError {
public static void main(String[] args) {
try {
method(1);
} catch (Throwable t) {
t.printStackTrace();
}
}
private static void method(int num) {
System.out.println(num);
int a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9, j = 10;
num++;
method(num);
}
}
Anormal:
La pila de la máquina virtual se guarda 基本数据类型
, 实例对象的引用
y 栈帧
cuando se ejecuta el método, el método se enviará a la pila y el método se eliminará de la pila después de que se ejecute el método, y la recursividad hará que el método se inserte en el apilar todo el tiempo, no fuera de la pila, y eventualmente provocar el desbordamiento de la memoria de la pila. La máquina virtualjava.lang.StackOverflowError