首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

虚拟机栈跟本地方法栈溢出

2012-12-26 
虚拟机栈和本地方法栈溢出如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常

虚拟机栈和本地方法栈溢出
如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。
如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常。


-Xss 每个线程栈的大小

/** * VM Args:-Xms20m -Xmx20m -Xss100k *  * @author zzm */public class JavaVMStackSOF {private int stackLength = 1;public void stackLeak() {stackLength++;stackLeak();}public static void main(String[] args) throws Throwable {JavaVMStackSOF oom = new JavaVMStackSOF();try {oom.stackLeak();} catch (Throwable e) {System.out.println("stack length:" + oom.stackLength);throw e;}}}

stack length:3157Exception in thread "main" java.lang.StackOverflowErrorat JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:12)at JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:12)at JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:12)at JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:12)at JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:12)at JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:12)

在-Xms20m -Xmx20m情况下面
上面情况下 -Xss=100k,stack length:3157
当情况如下 -Xss=200k,stack length:8619


热点排行