Java-java产生StackOverflowError的原因是什么

如题所述

栈溢出。Java里面每个线程都有独立的、固定大小的栈空间, Java在解释执行的时候采用的是栈式的架构。 方法调用、方法内的局部变量都是在栈空间申请的。 空间的大小依赖于JDK版本,JDK1.6应该是512K,超过了这个空间就会产生StackOverFlow。
死循环本身是不会StackOverflow的,只有无限递归的时候会出现。原则上循环嵌套次数本身是没有限制的,限制的是占用的栈空间,如果你的方法里定义了很多很多变量,栈空间就会用完得比较快。如果你的软件不是很庞大,那么你的程序中出现了无限的递归的情况可能产生这个错误。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-18
死循环等造成内存溢出

Java-java产生StackOverflowError的原因是什么
Java-java产生StackOverflowError的原因是内存耗尽了,一般是由于程序中有递归或者死循环导致,检查一下程序就好了。

Java-java产生StackOverflowError的原因是什么
【原因】:Stack空间不足以创建额外的线程,要么是创建的线程过多,要么是Stack空间确实小了。【解决】:由于JVM没有提供参数设置总的stack空间大小,但可以设置单个线程栈的大小;而系统的用户空间一共是3G,除了Text\/Data\/BSS\/MemoryMapping几个段之外,Heap和Stack空间的总量有限,是此消彼长的。因此遇...

StackOverFlowError的原因和解决方案
StackOverflowError 的根本原因是线程堆栈的内存使用。当堆栈中的数据量过大,导致超过了分配的内存限制时,就会引发此错误。一个典型的示例是无限递归调用,如程序中的 a() 方法。为了解决 StackOverflowError,通常有三种方法:修复代码、增加线程堆栈大小或使用具有自定义堆栈大小的线程。首先,如果错误是由...

java.lang.StackOverFlowError 怎么解决 具体点
StackOverflowError是由于当前线程的栈满了 ,也就是函数调用层级过多导致。比如死递归。以上是网上查阅的资料。看懂后,我发现我的项目用的servlet技术,讲doGet()方法添加方法this.doPost()得到解决。思考:应该是我在实现分页的时候,在点击上一页,下一页时,调用servlet函数后再调回本页面是,出现循...

请教,java.lang.StackOverflowError如何个处理,什么原因
StackOverflowError 一般是程序里可能是有死循环或递归调用所产生的。你可以检查一下你的代码,看看有哪里出现了死循环或者是递归调用使用不当,做适当修改即可

java.lang.stackoverflowerror怎么解决具体点
四、检查第三方库和框架的使用 如果程序中使用了第三方库或框架,也可能导致StackOverflowError。确保使用的库和框架版本兼容,并检查是否存在已知的栈溢出问题。如有必要,可以尝试升级或更换其他库和框架。总之,解决java.lang.StackOverflowError可以从增加栈空间大小、优化代码逻辑、使用调试工具定位问题以及检查...

java.lang.StackOverflowError怎么个处理,什么原因
一般来说,报这个错是因为递归没有没有结束,一直在跑,直到把你的java jvm的栈空间都跑满了,所以会抛出这个异常,建议你去查看一下你的代码中循环调用的部分,尤其是递归算法,看是不是没有结束条件,或者是结束条件没有起作用。

求助关于java.lang.StackOverflowError的解决方法
StackOverflow 这个问题一般是你的程序里头可能是有死循环或递归调用所产生的;可以查看一下你的程序,也可以增大你JVM的内存~~~在Eclipse中JDK的配置中加上 -XX:MaxDirectMemorySize=128 这代码,就行了,默认是64M,增大一倍,我估计行了,还不行的话,就用256吧,还不行的话,估计就是你...

alert报错stackoverflowerror原因
引发StackOverFlowError的常见原因有以下几种:·无限递归循环调用(最常见)。·执行了大量方法,导致线程栈空间耗尽。·方法内声明了海量的局部变量。·native代码有栈上分配的逻辑,并且要求的内存还不小,比如java.net.SocketInputStream.read0会在栈上要求分配一个64KB的缓存(64位Linux)。除了程序抛出...

求助关于java.lang.StackOverflowError的解决方法
java.lang.StackOverflowError 【原因】:这也内存溢出错误的一种,即线程栈的溢出,要么是方法调用层次过多(比如存在无限递归调用),要么是线程栈太小。【解决】:优化程序设计,减少方法调用层次;调整-Xss参数增加线程栈大小。

相似回答