本文介绍了什么导致 java.lang.StackOverflowError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么会导致 java.lang.StackOverflowError?我得到的stack打印出来的根本不是很深(只有5种方法).

What can cause a java.lang.StackOverflowError? The stack printout that I get is not very deep at all (only 5 methods).

推荐答案

检查任何对方法的递归调用.主要是在递归调用某个方法时引起的.一个简单的例子是

Check for any recusive calls for methods. Mainly it is caused when there is recursive call for a method. A simple example is

public static void main(String... args) {
    Main main = new Main();

    main.testMethod(1);
}

public void testMethod(int i) {
    testMethod(i);

    System.out.println(i);
}

这里是 System.out.println(i);调用 testMethod 时会反复压栈.

Here the System.out.println(i); will be repeatedly pushed to stack when the testMethod is called.

这篇关于什么导致 java.lang.StackOverflowError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 23:37