7.23Java之递归

7.23Java之递归

递归的概念

  • 指在当前方法内调用自己的这种现象

递归分类

  • 直接递归

  • 间接递归

直接递归

方法自身调用自己

间接递归

可以A方法调用B方法,B方法调用C方法,C方法调用A方法

注意事项

  • 递归一定有条件限定,保证递归能够停下来,否则会发生栈内存溢出(抛出这个异常)

  • 递归次数不能太多,否则也会发生栈内存溢出

  • 构造方法禁止递归

    • 构造方法是创建对象使用,一直递归会导致内存中有无数多个对象,直接编译报错

递归使用的前提

当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归

递归中方法的创建过程

递归实例:

package PracticeReview.Recursion;

/**
* 练习调用递归
* @since JDK 1.8
* @date 2021/07/23
* @author Lucifer
*/
public class RecursionDemoNo1 {
   public static void main(String[] args) {
//       a();
       b(1);
  }

   private static void b(int i) {
       System.out.println(i);
       if (i==10000){
           return;
      }
       b(++i);
/*
栈内存有一定的大小,超过这个大小会造成内存溢出
*/
  }

   /*
   递归一定有条件限定,保证递归能够停下来,否则会发生栈内存溢出,
    */
   private static void a() {
       System.out.println("a方法");
       a();
  }
}

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/15050230.html