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!!!
  • 相关阅读:
    MySQL事务处理2
    servlet过滤器配置白名单、黑名单
    Freemarker生成静态代码实例
    FreeMarker---数据类型
    创建第一个freemarker
    JDBC编程之优化
    关于ComponentName的使用
    launchMode使用详解
    android开发之使用上下文菜单
    android开发之shape详解
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15050230.html
Copyright © 2011-2022 走看看