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!!!
  • 相关阅读:
    【NIO】IO与NIO的区别
    【在线工具】java开发常用在线工具
    【JVM】符号引用和直接引用
    【多线程】公平锁/非公平锁、乐观锁/悲观锁
    【Jenkins、sonar】
    开源软件记录
    Git Flow
    CF1324A Yet Another Tetris Problem 题解
    洛谷 P1199 三国游戏 题解
    CF33C Wonderful Randomized Sum 题解
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15050230.html
Copyright © 2011-2022 走看看