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

概念

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

递归的分类:
。递归分为两种,直接递归和间接递归。。直接递归称为方法自身调用自己。
。间接递归可以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. 递归概念&分类&注意事项和练习_使用递归计算1-n之间的和

    递归:方法自己调用自己 递归的分类: 递归分为两种,直接递归和间接递归 直接递归称为方法自身调用自己 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法 注意事项: 递归一定要有条件限定 ...

  2. 递归概念&分类&注意事项和使用递归计算1-n之间的和

    递归 概述 递归:指在当前方法内调用自己的这种现象. 递归的分类: 递归分为两种,直接递归和间接递归 直接递归称为方法自身调用自己 简介递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法 注 ...

  3. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_1_递归概念&分类&注意事项

    a方法里面调用自己,但是没有停止的条件 方法没有停止的条件. 栈内存溢出的异常. 只有栈,没有堆内存 先执行main方法压栈执行 main方法里面调用a方法.a方法就会压栈 改成20000

  4. php非递归无限级分类.

    项目需要.递归无限级分类效率实在太低.理了半天思路写的. 分类越多效率越高. /** * 单次循环返回无限极分类嵌套 * @param array $data 操作的数组 * @param strin ...

  5. php递归无限分类、根据子类获取所有顶类

    //递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ...

  6. 042-PHP使用闭包函数递归无限级分类

    <?php //使用闭包函数递归无限级分类 function demo($array){ # 用于存储递归后的队列 $data = []; # 递归函数 $func = function (&a ...

  7. 后台树状菜单,js实现递归无限分类

    //新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...

  8. Java基础知识强化之IO流笔记11:递归之递归概述和注意事项

    1. 递归: 方法定义中调用方法本身的现象. e.g: public void show(int n ) { if(n <= 0) { System.exit(0); } System.out. ...

  9. php 非递归实现分类树

    本文实例讲述了php通过前序遍历树实现无需递归的无限极分类.分享给大家供大家参考.具体如下: 大家通常都是使用递归实现无限极分类都知道递归效率很低,下面介绍一种改进的前序遍历树算法,不适用递归实现无限 ...

随机推荐

  1. 七、docker镜像私有仓库

    在Docker中,当我们执行 docker pull xxx 的时候 ,它实际上是从 hub.docker.com 这个地址去查找,这就是 Docker 公司为我们提供的公共仓库.在工作中,我们不可能 ...

  2. Python基础之模块:2、包的使用和软件开发目录规范及常用内置模块

    目录 一.包的使用 1.什么是包 2.包的具体使用 1.常规导入 2.直接导入包名 二.编程思想转变 1.面条阶段 2.函数阶段 3.模块阶段 三.软件目录开发规范 1.bin 2.conf 3.co ...

  3. ES6 学习笔记(十二)代理器Proxy的简单使用

    1.前言 以前在学习react时做了个仿手机端的QQ音乐项目.当时的数据是通过proxy代理的QQ音乐数据接口,直接写在package.json里面.Proxy 对象(Proxy)是 ES6的特性,只 ...

  4. pyinstaller 打包exe相关

    -w 只有窗口,没有console -p 加入路径 -F 生成一个exe文件 有虚拟环境时,需要先在cmd中进入虚拟环境,再执行打包程序 # 生成一个exe 无窗口 有icon Pyside2 pyi ...

  5. Oracle:ORA-39006、ORA-39213解决办法

    执行Oracle数据库导入,遇到报错ORA-39006: internal error.ORA-39213: Metadata processing is not available.这还是第一次遇到 ...

  6. 部署owncloud连接ladp迁移数据

    定期 清理日志 echo '' > /var/www/html/data/owncloud.log 查询 用户 的 ldap 语句 (|(objectclass=inetOrgPerson)(o ...

  7. php 高并发

    1 swoole的博客 http://rango.swoole.com/archives/508 2 消息队列 3 接口并发请求

  8. shell文件报错syntax error near unexpected token '$'\r''

    本来跑的好好得一个文件,在windows下修改了,然后移植到linux就报错了. 找了一圈以下是解决方案: 这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n" ...

  9. 金山云:基于 JuiceFS 的 Elasticsearch 温冷热数据管理实践

    01 Elasticsearch 广泛使用带来的成本问题 Elasticsearch(下文简称"ES")是一个分布式的搜索引擎,还可作为分布式数据库来使用,常用于日志处理.分析和搜 ...

  10. 新版的Eureka已经移除了基于Ribbon的客户端的负载均衡

    启用一个EurekaServer和一个服务调用方,两个copy的服务提供方. 本次测试用Springcloud 2021.0.1版本 客户端使用RestTemplate 的负载均衡 @LoadBala ...