Java栈
Java栈的基本概念
Java栈,栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就Over,生命周期和线程一致,是线程私有的。8种基本类型的变量+对象的引用变量+实例方法都是在函数的栈内存中分配。
Java栈存储什么?
栈帧中主要保存3类数据:
- 本地变量(Local Variables):输入参数和输出参数以及方法内的变量;
例如
public int add(int x,int y){
int res = -1;
res = x + y;
return res;
}
就会保存add方法中的输入参数x、y,输出参数res,以及方法中的局部变量res。
- 栈操作(Operand Stack):记录出栈、入栈的操作;
- 栈帧数据(Frame Data):包括类文件、方法等等。