方法执行内存分析

方法执行内存分析

代码如下:

public class MethodTest01 {
public static void main(String[] args) {
    int a = 10;
    int b = 20;
    int retValue = sumInt(a, b);
    System.out.println("retValue = " + retValue);
}

public static int sumInt(int i, int j) {
    int result = i + j;
    int num = 3;
    int retValue = divide(result, num);
    return retValue;
}

public static int divide(int x, int y) {
    int z = x / y;
    return z;
	  }
}

运行结果如图
在这里插入图片描述
那么到底是如何得出这样的结果的呢?

1.首先程序执行到main方法。在main方法中定义变量a,b并为其开辟空间,a赋值为10,赋值为20。
2.int retValue = sumInt(a, b);调用sumInt()方法,a,b的值传给i,j。
3.继续运行,i+j赋值给 result,此时result值为30,num=3。
4.int retValue = divide(result, num);调用divide()方法,并将result,num的值传递给x,y,此时x=30,y=3,return z=10。
5.当divide()方法执行完后,sumInt()中调用的divide()方法也执行完毕,程序继续执行,于是可以知道retValue,return retValue= 10。之后继续回到main方法中,执行打印retValue。

结合下图理解
在这里插入图片描述

从上至下执行完毕后继续往回调用
在这里插入图片描述
注意:
程序一旦调用方法,就会给方法分配内存空间
方法调用时,参数在传递时传的变量中保存的
调用方法时必须等待等号右边执行完毕才会将结果传给等号左边,才能继续执行
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值