Java虚拟机本地方法栈溢出例子
JVM配置
-Xss128k
代码
package com.example.oom; public class JavaVmStackSOF { public int getStackLength() { return stackLength; } private int stackLength = 1; public void stackLeak() { stackLength++; stackLeak(); } }
测试
class JavaVmStackSOFTest { @Test public void test() { JavaVmStackSOF sof = new JavaVmStackSOF(); try { sof.stackLeak(); } catch (Throwable throwable) { System.out.println("stack length: " + String.valueOf(sof.getStackLength())); throw throwable; } } }
结果
调大xss的配置
-Xss1000M
二次结果
最终还是SOF,但是stack length达到了6000W
作者:iBrake
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.