栈溢出解决

Posted toov5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈溢出解决相关的知识,希望对你有一定的参考价值。

递归调用,栈深度。

错误原因: java.lang.StackOverflowError  栈内存溢出

栈溢出 产生于递归调用,循环遍历是不会的,但是循环方法里面产生递归调用, 也会发生栈溢出。

解决办法:设置线程最大调用深度  

-Xss5m 设置最大调用深度

小伙伴,玩个好玩的,最大默认深度:

package jvmTest;

//打印堆的基本内存信息
public class Test02 {
     private static int count;
     public static void count(){
        try {
             count++;
             count(); 
        } catch (Throwable e) {
            System.out.println("最大深度:"+count);
            e.printStackTrace();
        }
     }
     public static void main(String[] args) {
         count();
    }

  }    

结果:

技术分享图片

配置下 可以加大深度调用

来个猛烈的~~

技术分享图片

运行结果:

技术分享图片

 

 6666 好玩不

 

以上是关于栈溢出解决的主要内容,如果未能解决你的问题,请参考以下文章

使用setTimeout函数解决栈溢出问题

C语言读取大量文件进行计算栈溢出怎么解决

在windows数据栈溢出,在linux系统就没有栈溢出,为啥

栈溢出解决

如何检查和解决java虚拟机内存溢出的问题

递归调用太深,可能导致栈溢出