nested exception is java.lang.StackOverflowError解析

2022/6/30 14:19:49

本文主要是介绍nested exception is java.lang.StackOverflowError解析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

虚拟机栈是属于线程私有的,每个线程都会有一个虚拟机栈,随线程的创建而创建,消失而消失。它由一个个的栈帧组成,线程每次调用一个方法,就会有一个栈帧生成,并压栈。方法调用完之后,栈帧则出栈。当栈的深度不够,即栈的大小不足以放下所有的栈帧的时候,就会抛栈溢出的异常。

 

解决问题:

要把栈大小设置的大一点,要设置的大一点首先要知道目前是多大。项目未对虚拟机栈的大小作设定,也就是说目前的大小是默认值。

JDK5之后每个栈大小是1M,之前是256k。我们用的是JDK8,那么大小就是1M。要把栈大小设成大于1M的值。但是又不能设置太大,因为如果单个线程栈太大,就会限制最大线程数量。

项目没有高并发的情况,所以就先设置成2M。设置方法,在JVM启动参数里面加上 -Xss2m。



这篇关于nested exception is java.lang.StackOverflowError解析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程