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中完整执行如下图: