Java中我的递归调用的jvm StackOverflower错误
我正在进行StackOverflowError
递归调用:
Exception in thread "main" java.lang.StackOverflowError
at Test.trailMngr(Test.java:112)
at Test.trailMngr(Test.java:115)
at Test.trailMngr(Test.java:115)
at Test.trailMngr(Test.java:115)
at Test.trailMngr(Test.java:115)
...
Java Result: 1
有没有办法在不更改代码的情况下修复此问题
我能想到的唯一方法就是将它变成一个非递归方法
代码中的其他内容在较小的输入大小下运行良好——如果可能的话,我将避免更改(尽管我不抱希望)
不太熟悉Java在这些事情上的行为
蒂亚
# 1 楼答案
假设不处理无限递归,可以使用命令行
Xss
参数增加堆栈大小:这是为每个线程的内部使用分配的内存量。大小可以以字节(
-Xss8
)、千字节(-Xss8k
)、兆字节(-Xss8m
)或千兆字节(-Xss8g
)为单位指定。请注意,将其设置为高值将明显增加内存使用