方法执行内存分析
java方法在执行过程中,内存在JVM中是如何分配。如何变化的。
- 方法只定义不调用,就不运行,不会在JVM中分配分配方法运行所需要的内存空间。
- 在JVM内存划分中,主要有三个内存空间:
方法区内存,堆内存,栈内存 - 栈数据结构
栈,stack,是一种数据结构,反映的是数据的存储形态,数据结构是独立的一门学科
- 方法执行时代码片段和执行过程的内存
方法代码片段存在于方法区当中,属于.class文件的一部分。
代码片段虽然在内存区内存中只存在一份,但是可以被重复调用,每一次调用,需要在栈中分配独立的活动场所。(栈内存中分配方法运行所属的内存空间)。
压栈:分配内存
弹栈:释放内存
1
方法调用参数传递时,传递的是变量中保存的那个值
举例:
public class Lianxi14
{
public static void main(String []args){
int a=10;
int b=20;
int retValue=sumInt(a,b);
System.out.println(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;
}
}
内存变化图