递归内存分析
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!