1、当前正在执行的函数所对应的帧就是当前的帧(位于栈顶),它保存当前函数的局部变量、中间运算结果等数据
2、当函数返回时,栈帧从java栈中被弹出。 java 方法有两种返回函数的方式,一种是正常的函数返回,使用return指令;另外一种 是抛出异常。 以上两种方式都会导致栈帧被弹出。
3、在一个栈帧中,至少包含局部变量表、操作数栈和帧数据几个部分
5、当请求的栈深度大于最大可用栈深度时,系统会抛出StackOverflowError栈溢出错误
public class TestStackDeep{
private static int count = 0;
public static void recursion(){
count++;
recursion();
}
public static void main(String[] args){
try{
recursion();
}catch(Throwable e){
System.out.println("deep of calling = " + count);
// e.printStackTrace();
}
}
}
6、函数的嵌套调用在很大程度上由栈的大小决定,栈越大,函数可以支持的嵌套调用次数就越多