JVM的运行时数据区包括:程序计数器,java虚拟机栈,方法区,堆内存 ,栈内存,五部分
虚拟机栈(线程栈):虚拟机栈是线程私有的,随着线程的生灭而生灭.
/**
* java虚拟机栈
*/
public class Math{
public static final int initData=666;
public int compute(){ //一个方法对应一块栈帧的内存区域(当线程运行到方法上的时候就会在虚拟机栈上创建一个栈帧)
int a = 1;
int b = 2;
int c = (a+b)*10;
return c;
}
public static void main(String[] args) {//=========每个main方法在创建的时候,都会在jvm中创建一个属于自己的栈空间
Math inn = new Math(); //一个方法对应一块栈帧的内存区域(当线程运行到方法上的时候就会在虚拟机栈上创建一个栈帧)
inn.compute();
}
}
包括:
局部变量表:存储变量
每一个线程在加载的时候都会创建一个自己独有的线程栈,
栈帧:当一个线程运行到方法上的时候,就会在这个栈中分配一块内存空间,