递归
问题:
- 什么是递归 ?
- 递归存在的带来的东西 ? 可能引发的问题(为什么不建议用递归)?
递归的定义
伪代码如下:
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 等) , 不建议使用递归方法这种方式