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!!!
  • 相关阅读:
    Bete冲刺第二阶段
    Beta版本冲刺计划及安排
    Bete冲刺第一阶段
    软件工程实践总结
    用户试用体验报告
    Bata版本冲刺计划及安排
    scrum阶段总结
    关于 微软必应词典客户端 的案例分析
    第三次结对编程
    结对项目之需求分析与原型模型设计
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15050230.html
Copyright © 2011-2022 走看看