您当前的位置: 首页 > 

liaowenxiong

暂无认证

  • 2浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

递归调用方法时栈内存是如何变化的?(使用内存图演示递归调用过程)

liaowenxiong 发布时间:2021-06-07 14:59:13 ,浏览量:2

文章目录
  • 什么是栈内存
  • 演示方法递归调用过程

什么是栈内存

在学习递归实现原理之前,我们先了解一下栈内存。 栈内存是计算机中的一种数据存储方式,是 Java 进程启动时候在内存中开辟的存储空间。

  • 栈内存的利用方式遵循 LIFO(后迚先出)原则
  • Java 所有局部变量都在栈中分配(压入),方法的参数也是局部变量,局部变量在离开作用域时候回收,就是从栈中弹出(删除)。
  • Java 中所有的局部变量都是在栈内存中分配的(包括方法中声明的变量、方法的参数)。

Java 方法调用使用栈实现, 递归调用就是栈实现的。递归时候要按照递归深度分配全部临时变量, 栈开销很大, 性能不好, 要注意不要超过栈的大小, 并且一定要给出结束条件, 否则会造成栈溢出错误。

演示方法递归调用过程

接下来我们通过递归计算 5+3+1 演示递归调用过程,代码如下所示:

public class RevDemo {
   
public static void main(String[] args) {
   
	int n = 5;
	int y = f(n); // 5+3+1
	System.out.
关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0381s