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