java-循环体的使用

递归

问题:

  1. 什么是递归 ?
  2. 递归存在的带来的东西 ? 可能引发的问题(为什么不建议用递归)?

递归的定义

伪代码如下:

private void recursionMethod(xxxx xxx){
  //满足条件 结束递归
   if(xxx){
        return;
   }
   //业务逻辑 1
   List <xxx> record = mapper.select();
   //业务逻辑
   recursionMethod(xxxx xxx)
}


递归带来压栈

栈的数据结构特点 : 先进后出

解释下为什么会压栈 参考: https://blog.youkuaiyun.com/qq_34202054/article/details/123170291

栈与方法的解释

递归引发的问题(后进先执行) : 先进栈的栈针 , 最后出栈 (如 : method01 会在 method02 后出栈) , 如我写伪代码写的集合 List record = mapper.select(); record 一直不会被释放 , 直到当前栈针出栈(方法执行完毕)

针对问题的解决办法: 改为其他循环体实现 逻辑(for , while 等) , 不建议使用递归方法这种方式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值