什么是虚拟机栈
栈是一种先进后出的数据存储结构,而虚拟机栈则是线程运行需要的内存空间。
特点:
- 每个栈由多个栈帧构成,一次栈帧代表一次方法的调用。
- 栈不涉及垃圾回收
- 栈的默认大小是1024KB,可以自己划分,同时运行的最大线程数和栈的大小和成反比。
public class stacks {
public static void main(String[] args) {
aa();
}
private static void aa() {
bb(1,2);
bb(2,3);
}
private static void bb(int a,int b) {
System.out.println(a+b);
}
}
第一步运行main函数
main方法进栈
第二步运行aa方法
aa方法进栈
第三步调用bb方法
bb方法进栈
第四步bb方法执行结束出栈
第五步bb方法再次被调用
bb方法再次进栈
第六步bb方法运行结束出栈
第七步aa方法运行结束出栈
第八步main方法结束出栈
栈帧所占空间
bb方法为例