递归概念分类注意事项
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                递归概念分类注意事项
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            package com.learn.demo02.Recursion;
/*遞歸:方法自己調(diào)用自己- 遞歸的分類:- 遞歸分為兩種,直接遞歸和間接遞歸。- 直接遞歸稱為方法自身調(diào)用自己。- 間接遞歸可以A方法調(diào)用B方法,B方法調(diào)用C方法,C方法調(diào)用A方法。- 注意事項:- 遞歸一定要有條件限定,保證遞歸能夠停止下來,否則會發(fā)生棧內(nèi)存溢出。- 在遞歸中雖然有限定條件,但是遞歸次數(shù)不能太多。否則也會發(fā)生棧內(nèi)存溢出。- 構(gòu)造方法,禁止遞歸遞歸的使用前提:當(dāng)調(diào)用方法的時候,方法的主體不變,每次調(diào)用方法的參數(shù)不同,可以使用遞歸*/
public class Demo01Recurison {public static void main(String[] args) {//a();b(1);}/*構(gòu)造方法,禁止遞歸編譯報錯:構(gòu)造方法是創(chuàng)建對象使用的,一直遞歸會導(dǎo)致內(nèi)存中有無數(shù)多個對象,直接編譯報錯*/public Demo01Recurison() {//Demo01Recurison();}/*在遞歸中雖然有限定條件,但是遞歸次數(shù)不能太多。否則也會發(fā)生棧內(nèi)存溢出。11157Exception in thread "main" java.lang.StackOverflowError*/private static void b(int i) {System.out.println(i);if(i==20000){return; //結(jié)束方法}b(++i);}/*遞歸一定要有條件限定,保證遞歸能夠停止下來,否則會發(fā)生棧內(nèi)存溢出。Exception in thread "main" java.lang.StackOverflowError*/private static void a() {System.out.println("a方法!");a();}
}
 
                        
                        
                        ?
總結(jié)
以上是生活随笔為你收集整理的递归概念分类注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: File类遍历(文件夹)目录功能
- 下一篇: 使用递归计算1-n之间的和
