递归概念&分类&注意事项

概念

递归:指在当前方法内调用自己的这种现象。

递归的分类:
。递归分为两种,直接递归和间接递归。。直接递归称为方法自身调用自己。
。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。

注意事项:
 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

 在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

 构造方法,禁止递归

package Demo01.File;

/**
* -递归的分类:
* -递归分为两种,直接递归和间接递归。-直接递归称为方法自身调用自己。
* -间接递归可以A方法调用B方法,8方法调用c方法,c方法调用A方法。-注意事项:
* -递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
* -在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。-构造方法,禁止递归
* 递归的使用前提:
* 当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归
*/
public class Demo01Recurison {
public static void main(String[] args) {
// a();
b(1);
} private static void b(int i) {
System.out.println(i);
if (i==20000){
return;
}
b(++i);
} private static void a() {
System.out.println("a方法!");
a();
}
}

最新文章

  1. 如何配置Log4Net使用Oracle数据库记录日志
  2. 服务器响应HTTP的类型ContentType大全
  3. URL参数为url,获取不到部分参数问题
  4. redis auth php操作
  5. phpstudy配置ssl
  6. Day8~11(2016/1/28~2016/1/31)
  7. PHP实现的一分页工具类代码
  8. [Everyday Mathematics]20150101
  9. LinearLayout遇到的问题——利用LinearLayout做横向滑动冲突
  10. Linux之权限管理
  11. C++入门篇九
  12. 备忘-vs2015实用插件
  13. tomcat BIO / NIO
  14. ElasticSearch 批量增加索引
  15. 转载:《RESTful API 设计指南》 阮一峰
  16. hdu2461 Rectangles 线段树--扫描线
  17. mysql sql中的一些问题,Null与空字符
  18. maven的pom.xml举例
  19. CentOS 7.2修改网卡名称
  20. WF4.0(3)----变量与参数

热门文章

  1. webpack优化项目
  2. 图扑软件 3D 组态编辑器,低代码零代码构建数字孪生工厂
  3. TypeScript(基础篇)day01
  4. 【题解】UVA10228 A Star not a Tree?
  5. C#11之原始字符串
  6. C#一个16进制数用二进制数表示是几位?
  7. CSP-J2022 题解报告
  8. Nginx如何配置隐藏index.php文件
  9. Go语言核心36讲02
  10. php 高并发