Java Virtual Machine-5-StackOverflowError

五 、 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

Supongo que te gusta

Origin blog.csdn.net/adsl624153/article/details/103865613
Recomendado
Clasificación