

图示中在一个栈中有两个栈帧:栈帧2是最先被调用的方法,先入栈;然后方法2又调用了方法1,栈帧1处于栈顶的位置。执行完毕后,依次弹出栈帧1和栈帧2,线程释放,栈释放。
每执行一个方法就会产生一个栈帧,保存到栈的顶部,顶部栈就是当前方法,方法执行完毕之后就会自动将该栈帧出栈。
public class Test {
public static void m(){
m();
}
public static void main(String[] args){
System.out.println("111");
//Exception in thread "main" java.lang.StackOverflowError
m();
System.out.println("222");
}
}
/*
* output:
* 111
* Exception in thread "main" java.lang.StackOverflowError
*/
原文:https://www.cnblogs.com/shuangaaa/p/14334125.html