一个栈溢出的demo
作者:bin- 1.虚拟机运行时运用一种叫做栈桢的数据结构,保存上下文数据。
- 2.每一个方法的调用都伴随这栈桢的入栈操作,相应的,方法的返回则表示栈桢的出栈操作。
- 3.如果方法调用时,局部参数相对较多,那么栈桢中的局部变量就大,因此单个方法调用所需的栈空间也会比较多
下面是一个栈溢出的demo:
package com.zengbingo.outOfmemoryError;
public class TestJVMStack {
private int count = 0;
public void rescursion(long a , long b, long c){
long d=0,e=0,f=0;
count++;
rescursion(a,b,c);//递归
}
public void testStatck(){
try {
rescursion(1L,2L,3L);
} catch (Throwable e) {
System.out.println("深度为" + count);
e.printStackTrace();
}
}
public static void main(String[] args) {
TestJVMStack testJVMStack = new TestJVMStack();
testJVMStack.testStatck();
}
}
输出结果
深度为5176 java.lang.StackOverflowError at com.zengbingo.outOfmemoryError.TestJVMStack.rescursion(TestJVMStack.java:6)