递归概念&分类&注意事项
递归概念&分类&注意事项
概念
递归:指在当前方法内调用自己的这种现象。
递归的分类:
。递归分为两种,直接递归和间接递归。。直接递归称为方法自身调用自己。
。间接递归可以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-n之间的和
递归:方法自己调用自己 递归的分类: 递归分为两种,直接递归和间接递归 直接递归称为方法自身调用自己 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法 注意事项: 递归一定要有条件限定 ...
- 递归概念&分类&注意事项和使用递归计算1-n之间的和
递归 概述 递归:指在当前方法内调用自己的这种现象. 递归的分类: 递归分为两种,直接递归和间接递归 直接递归称为方法自身调用自己 简介递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法 注 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_1_递归概念&分类&注意事项
a方法里面调用自己,但是没有停止的条件 方法没有停止的条件. 栈内存溢出的异常. 只有栈,没有堆内存 先执行main方法压栈执行 main方法里面调用a方法.a方法就会压栈 改成20000
- php非递归无限级分类.
项目需要.递归无限级分类效率实在太低.理了半天思路写的. 分类越多效率越高. /** * 单次循环返回无限极分类嵌套 * @param array $data 操作的数组 * @param strin ...
- php递归无限分类、根据子类获取所有顶类
//递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ...
- 042-PHP使用闭包函数递归无限级分类
<?php //使用闭包函数递归无限级分类 function demo($array){ # 用于存储递归后的队列 $data = []; # 递归函数 $func = function (&a ...
- 后台树状菜单,js实现递归无限分类
//新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...
- Java基础知识强化之IO流笔记11:递归之递归概述和注意事项
1. 递归: 方法定义中调用方法本身的现象. e.g: public void show(int n ) { if(n <= 0) { System.exit(0); } System.out. ...
- php 非递归实现分类树
本文实例讲述了php通过前序遍历树实现无需递归的无限极分类.分享给大家供大家参考.具体如下: 大家通常都是使用递归实现无限极分类都知道递归效率很低,下面介绍一种改进的前序遍历树算法,不适用递归实现无限 ...
随机推荐
- SpringBoot 常用注解的原理和使用
@AutoConfiguration 读取所有jar包下的 /META-INF/spring.factories 并追加到一个 LinkedMultiValueMap 中.每一个url中记录的文件路径 ...
- Day2.1
HelloWorld 随便新建一个文件夹,存放代码 新建一个java文件 文件后缀名为.java Hello.java 注意:系统可能没有显示文件名后缀,我们需要手动打开 编写代码 public cl ...
- vue传值
在vue 中组件间的传参是必不可少的,下面说下几种传参方式 1.父组件传值给子组件,首先父组件发送的形式是用bind(用缩写:)绑定值到子组件身上.然后子组件用属性props接收 2.子组件传值父组件 ...
- hwlog--limiter.go
// Copyright(C) 2021. Huawei Technologies Co.,Ltd. All rights reserved.// Package limiter implement ...
- 某厂面试:如何优雅使用 SPI 机制
代码不多,文章可能有点长.朋友面试某厂问到的 SPI 机制,联想到自己项目最近写到的 SPI 场景,文章简要描述下 SPI 机制的发展历程 产出背景 因为最近项目中使用分库分表以及数据加密使用到了 S ...
- A-深度学习面试题
目录 目录 一,滤波器与卷积核 二,卷积层和池化输出大小计算 2.1,CNN 中术语解释 2.2,卷积输出大小计算(简化型) 2.3,理解边界效应与填充 padding 参考资料 三,深度学习框架的张 ...
- 小米路由器局域网设备ping不通
问题 手机和电脑在同一个局域网内,都连接上小米路由器,我发现电脑部署的服务局域网设备都访问不到,甚至ping不到,排除了防火墙问题,最终发现是路由器一个设置导致的. 解决 将原来的混合加密,更换为强加 ...
- sublime text配置java运行环境
java正常运行流程 首先一个 test.java 文件 如果要运行这个文件需要先编译 javac test.java 然后在同级目录会生成一个test.class 文件 然后 java test 来 ...
- 环境安装-Centos7.4安装及配置
环境安装-Centos7.4安装及配置 〇.资料汇总 一.虚拟机安装 1.下载地址 https://pan.baidu.com/s/1zcOp06HX4OxPdsCCGkHbXQ 提取码:7777 2 ...
- 【PostgreSQL】PG读取元数据获取表结构及字段类型信息(过程拆解及其他应用场景)
〇.参考链接 一.代码 指定模式的表名和字段 select c.relname 表名, cast ( obj_description (relfilenode, 'pg_class') as varc ...