目录
JAVA入门级教学之(方法递归)
1.关于方法的递归调用:
2.递归是很耗费栈内存的,递归算法可以不用的时候尽量别用
3.以下程序运行的时候发生了这样的一个错误【不是异常,是错误】
4.递归必须有结束条件,没有结束条件一定会发生栈内存溢出错误
5.递归即使有了结束条件,即使结果条件是正确的,也可能会发生栈内存溢出错误
JAVA入门级教学之(方法递归)
1.关于方法的递归调用:
什么是递归:
*方法自身调用自身
m(){
m();
}
2.递归是很耗费栈内存的,递归算法可以不用的时候尽量别用
3.以下程序运行的时候发生了这样的一个错误【不是异常,是错误】
java.lang.StackOverflowError
栈内存发生溢出错误
错误发生无法挽回,只有一个结果,就是报错后JVM停止工作【这是一种JVM的保护机制】
4.递归必须有结束条件,没有结束条件一定会发生栈内存溢出错误
5.递归即使有了结束条件,即使结果条件是正确的,也可能会发生栈内存溢出错误
因为递归到太深入了,栈内存超标使用
public class recursion01
{public static void main(String[] args){System.out.println("main begin");doSome();System.out.println("main over");}//以下调用的方法虽然只有一份//但是可以被重复调用,并且只要调用doSome()方法就会在栈内存中新分配一块内存空间public static void doSome(){System.out.println("doSome begin");doSome();//这行代码不结束,下一行代码不能执行//return;//如果用上这个返回值的话相当于一个弹栈动作,就不会发生栈溢出错误System.out.println("doSome over");}}