JAVA入门级教学之(方法递归)

/*
    关于方法的递归调用:
        1.什么是递归:
            *方法自身调用自身
            m(){
                m();
            }
        
        2.递归是很耗费栈内存的,递归算法可以不用的时候尽量别用
        
        3.以下程序运行的时候发生了这样的一个错误【不是异常,是错误】
            java.lang.StackOverflowError
            栈内存发生溢出错误
            错误发生无法挽回,只有一个结果,就是报错后JVM停止工作【这是一种JVM的保护机制】
        
        4.递归必须有结束条件,没有结束条件一定会发生栈内存溢出错误
        
        5.递归即使有了结束条件,即使结果条件是正确的,也可能会发生栈内存溢出错误,
          因为递归到太深入了,栈内存超标使用
*/

public class recursion01
{
    public static void main(String[] args)
    {
        System.out.println("main begin");
        doSome();
        System.out.println("main over");
    }


    //以下调用的方法虽然只有一份
    //但是可以被重复调用,并且只要调用doSome()方法就会在栈内存中新分配一块内存空间

    public static void doSome()
    {
        System.out.println("doSome begin");
        doSome();//这行代码不结束,下一行代码不能执行
        //return;//如果用上这个返回值的话相当于一个弹栈动作,就不会发生栈溢出错误
        System.out.println("doSome over");
    }


}
发布了81 篇原创文章 · 获赞 3 · 访问量 2476

猜你喜欢

转载自blog.csdn.net/LBJ8888888/article/details/104385605
今日推荐