Java方法在JVM中运行原理

Java基本知识 Java方法是如何在JVM里面执行的

方法执行原理:
1.方法只有在调用的时候,才会在内存中为其开辟空间
2.方法之定义而没有调用的话,不会为其开辟内存空间
3.方法在调用的时候在“”栈内存“”中为其开辟空间(JVM里面有一块内存为栈内存)
4.方法调用就是 “压栈/进栈.”
5.方法结束就是 ‘“弹栈/出栈”

(含图解)

在类中定义五个方法 一个主函数方法,四个实例方法,并且不构成重载
代码如下:

public class MethodTest{
   public static void main(String[] args){
      int i=10 ;//int i  局部变量,只在本方法中有效
       M1(i);
       System.out.println("不吃香菜的HM")}
   public static int M1(int i){
   M2(i)
   }
    public static int M2(int i){
   M3(i)
   }
    public static int M3(int i){
       System.out.println("输出的数字为 :"+i)}
   public static int M4(){
   
   }
}

分析 :
第一步 程序执行时首先将main方法栈帧压入栈,此时在栈底
分配一个局部变量int i=10;
紧接着调用M1()方法

第二步 调用M1()方法后 会将i=10传给M1形参i
在M1中调用M2() 将获得参数继续传递

第三步 和第二步同理,不断传递参数,调用M3()

第四步 将i=10传递给M4()后
M4()方法执行System.out.println("输出数字为: "+i);

主方法不会在栈内存中为M4()分配内存,因为M4()方法没有执行主函数中
没有执行M4()方法。

JVM在栈内存中执行方法如下图所示:
在这里插入图片描述

程序在eclipse中完整执行如下图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值