(javase)方法递归

/*
    关于方法的递归调用

      1、什么是递归?
         方法自身调用自身。
          a(){
              a();
          }

      2、递归是很耗栈内存的,递归算法可以不用的时候尽量别用。

      3、以下程序运行的时候发生了这样的一个错误【不是异常,是错误Error】:
          java.lang.StackOverflowError
          栈内存溢出错误。
          错误发生无法挽回,只有一个结果,就是JVM停止工作。
      
      4、递归必须有结束条件,没有结束条件一定会发生栈内存溢出错误。

      5、递归即使有了结束条件,即使结束条件是正确的,也可能会发生栈内存溢出错误,
      因为递归的太深了。

        注意:
          递归可以不使用尽量别用。
          但是有些情况下该功能的实现必须依靠递归方式。
*/

public class RecursionTest01 
{
    //主方法
    public static void main(String[] args) 
    {
        System.out.println("main begin");

        //调用doSome方法
        doSome();
        System.out.println("main over");

    }

    //以下的代码片段虽然只有一份
    //但是可以被重复的调用,并且只要调用doSome方法就会在栈内存中新分配一块所属的内存空间。
    public static void doSome(){
        System.out.println("doSome begin");
        doSome();//这行代码不结束,下一行程序是不能执行的
        System.out.println("doSome over");

    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拂心L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值