java方法的递归调用过程,java阶乘递归写法

1、什么是递归?
方法自身调用自身 , 模板:
aa(){
aa();
}
下图简单示例:


java方法的递归调用过程,java阶乘递归写法

文章插图


2、递归是很耗费栈内存的,递归算法可以不用的时候尽量别用 。
3、程序运行的时候发生了这样的一个错误【不是异常 , 是错误Error】 ;
【java方法的递归调用过程,java阶乘递归写法】 java . lang.stackoverflowError
栈内存溢出错误 。错误发生无法挽回,只有一个结果 , 就是JVM停止工作 。
4、递归必须有结束条件 , 没有结束条件一定会发生栈内存溢出错误 。
5、递归即使有了结束条件 , 即使结束条件是正确的 , 也可能会发生栈内存溢出钳误 , 因为 递归的太深了 。
6.递归原理:
最先调用的main方法在栈底 , 最后结束;最后调用的方法在栈顶 , 最先结束 。
原理图:
java方法的递归调用过程,java阶乘递归写法

文章插图
7.1 1~n求和示例:
java方法的递归调用过程,java阶乘递归写法

文章插图
普通求和方式


java方法的递归调用过程,java阶乘递归写法

文章插图
递归求和方式 , 与讲解 。(紧记一个作为例子)
7.2 阶乘示例:
java方法的递归调用过程,java阶乘递归写法

文章插图
不是使用递归计算10的阶乘
java方法的递归调用过程,java阶乘递归写法

文章插图
使用递归计算10的阶乘 , 原理相同 。

    推荐阅读