• 递归思想的由来


    方法A{
    方法B();
    其它代码
    }
    方法B{
    方法C();
    其它代码
    }
    方法C{
      方法D();
    其它代码  
    }
    方法D{
    其它代码
    }

    方法A中调用方法B,A中的其它代码需要等待A中B方法调用完成才开始。

    同理,直到调用到方法D停止调用其它方法,完成后回到方法C里面完成其它代码,再回到方法B里面完成其它代码,再回到方法A里面完成其它代码。

    这样一种调用思想就是递归。

    示例:

    //递归的思想,方法内调方法本身,在方法未执行完成处于等待期间,直到判断到最后一次不再调用自己,开始释放空间
        private void build(int floor){
            //第一步,判断,调用
            if(floor>1){
                this.build(floor-1);
            }
            //第二步,自己执行
            System.out.println("第:"+floor+"");
        }
        /**
         * 方法在执行时会在栈内存中开辟临时空间,每调用一次开辟一块内存空间,等完全执行完毕后释放空间。
         * 1.判断5>1,调用 。第二步等待第一步完成后才开始调--->产生第一个零时内存空间
         * 2.判断4>1,调用,第二步等待第一步完成后才开始调--->产生第二个临时内存空间
         * 3.判断3>1,调用。第二步等待第一步完成后才开始调--->产生第三个临时内存空间
         * 4.判断2>1,调用,第二步等待第一步完成后才开始调--->产生第四个临时内存空间
         * 5.判断1>1,不调。第二步开始调用--->产生第5个临时内存空间
         * 6.此时floor==1开始打印第一层,释放第5次产生的内存>>第:1层
         * 7.此时floor==2开始打印第二层,释放第4次产生的内存>>第:2层
         * 8.此时floor==3开始打印第三层,释放第3次产生的内存>>第:3层
         * 9。此时floor==4开始打印第三层,释放第2次产生的内存>>第:4层
         * 10.此时floor==5开始打印第三层,释放第1次产生的内存>>第:5层
         */
  • 相关阅读:
    rest_framework 认证组件 权限组件
    Django rest_framework 序列化组件
    django 跨域问题
    python的magic methods
    RESTful规范
    BBS论坛 后台管理
    BBS论坛 文章详情、点赞、评论
    BBS论坛 home主页与个人站点主页
    好用的SqlParamterList
    教你如何在实战项目中使用WCF
  • 原文地址:https://www.cnblogs.com/hebiao/p/12882827.html
Copyright © 2020-2023  润新知