递归调用在内存中的步骤:
首先看一段代码:
public class Test {
public static void main(String[] args) {
test(4);
}
public static void test(int n){
if (n>2){
test(n-1);
}
System.out.println("n="+n);
}
}
在内存中,会有栈区,
在执行上述代码的时候,就会先将main方法入栈,然后***程序执行一个方法,就会开辟一个独立的栈空间***。每个栈空间的数据(局部变量)也都是独立的。上述代码执行过程的栈空间变化如下图所示:
程序执行结果:
n=2
n=3
n=4