最近新开班的小伙伴向南京Java培训咨询lang包异常的问题,现在南京达内Java培训小编向南京Java培训班项目经理哪里拿到了异常解决方案、
首先
南京达内java培训带大家来看下StackOverflowError要表达的意思是什么?
Stack本身是栈的意思,而overflow指的是溢出,综合起来的StackOverflowError的意思就是栈溢出了。
与之对应的是StackUnderflowError,StackOverflowError指的是上溢,那StackUnderflowError就是下溢了,很显然从堆栈的思想上来看,通常情况下是只是上溢。
这言外之意就是说在java做某些运算或者说程序段的操作时,栈空间被用完了。所以有很多人程序员解释为内存不够。那为什么会内存不够呢?
南京达内java培训觉得实际上,如果程序里含有某些死循环或者是无限递归没有处理好时,可能会导致java的JVM虚拟机内存逐步的增大,大到一定限度没有得到合理的释放时,就出现了StackOverflowError。
对于这种情况,南京Java培训机构老师提供的解决办法倒是很简单:可以在Eclipse的JDK配置中进行相应的配置,具体的配置代码是:- XX:MaxDirectMemorySize=64,将这里的64M修改为128或者更大等,接下来是采用debug单步调试的模式进行程序修复,F8 单步跟踪,把程序的逻辑梳理清楚也可以解决问题。
所以这里可以归结为:死循环等程序导致StackOverflowError,解决方法就是增大JVM内存,同时debug模式下优化程序。
同时南京达内Java培训机构还提出以下建议:
1、在撰写程序的时候,记住不要无限死循环或者是无穷递归,可以把某些递归代码尽量非递归化。
2、程序在定义变量的时候,注意局部变量不要过大。
3、设置编译器的配置时,尽量将配置的数据放大一点,如刚才所叙述的Eclipse JDK的虚拟内存配置参数等。
遇到异常问题不可怕可怕的是,遇到了问题南京java培训班的小伙伴不去处理,我们一起学习,不会的大家一起讨论。