递归内存分析

2023-12-30 17:20:21
//递归(recursion)就是方法自己调用自己,每次传入时传入不同的变量,

public class hsp213{
	public static void main(String args[]){
        T t1 = new T();
        t1.test(4);//输出 n=2 n=3 n=4
	}
}
class T{
	public void test(int n){
		if(n >2){
			test(n-1);
		}
		System.out.println("n= " + n);
	}
}

T t1 = new T();

创建一个t1 对象

t1.test(4);

创建test栈,并将4赋给test栈中的n

if(n >2){
	test(n-1);
}

4>2故执行test(n-1)即test(3),故又开了一个test栈,将3赋给新开的test栈

3>2故执行test(n-1)即test(2),故又开了一个test栈,将2赋给新开的test栈

2不满足>2,故不执行if语句体,执行

System.out.println("n= " + n);

输出n=2;

然后返回到的第三个test栈,执行第三个test栈中的

System.out.println("n= " + n);

输出n=3

然后返回到的第二个test栈,执行第二个test栈中的?

System.out.println("n= " + n);

?输出n=4

执行完毕后,返回main栈?

?

文章来源:https://blog.csdn.net/lmd187/article/details/135223845
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。