java递归函数测试

来源:互联网 发布:无线网卡网络不稳定 编辑:程序博客网 时间:2024/05/16 16:02

递归的最大次数还与参数与递归函数的复杂度有关。

/** * 测试递归调用 * @version 1.0 */public class TestRecursive {/** * 递归相加.     * @param i <br><br> * author lizhongde<BR> * date Jul 11, 2013<br> * remark <br> */public void recursive(int i) {System.out.println("第"+i+"次递归循环");recursive (++i);}/** * 测试.     * @param args <br><br> * author lizhongde<BR> * date Jul 11, 2013<br> * remark <br> */public static void main(String[] args) {TestRecursive test = new TestRecursive();test.recursive(10000);}}

 

程序运行出错:

第13894次递归循环第13895次递归循环Exception in thread "main" java.lang.StackOverflowErrorat sun.nio.cs.UTF_8.updatePositions(UTF_8.java:58)at sun.nio.cs.UTF_8$Encoder.encodeArrayLoop(UTF_8.java:392)at sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:447)at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:544)at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:252)at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106)at java.io.OutputStreamWriter.write(OutputStreamWriter.java:190)at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111)at java.io.PrintStream.write(PrintStream.java:476)at java.io.PrintStream.print(PrintStream.java:619)at java.io.PrintStream.println(PrintStream.java:756)at TestRecursive.recursive(TestRecursive.java:15)at TestRecursive.recursive(TestRecursive.java:16)at TestRecursive.recursive(TestRecursive.java:16)at TestRecursive.recursive(TestRecursive.java:16)