zoukankan      html  css  js  c++  java
  • 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!!!
  • 相关阅读:
    Bind和Eval的区别详解(ZT)
    .net中IndexOf和LastIndexOf的区别 
    个人学习代码保存:例3. GridView相关练习操作
    Convert.ToInt32和int.Parse有什么区别?
    个人学习代码保存:例1.asp.net DataList相关操作
    Sum(构造,枚举)
    1278 相离的圆(51nod)
    Wheels(bfs遍历,CERC 2014)
    详解 Android 的 Activity 组件
    Android应用程序变量
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15050230.html
Copyright © 2011-2022 走看看