本文介绍了什么导致 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!