递归内存分析

//递归(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栈 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值