遞歸和棧溢出

遞歸對內存空間得要求很高,遞歸很容易形成棧溢出java


public static void printN2(int N){
if (N>0){
printN2(N-1);
System.out.printf("%1$-2d",N);
}
}

@Test
public void testPrintN2() throws Exception {
long ms1 = Calendar.getInstance().getTimeInMillis();
Misc.printN2(10000);
long ms2 = Calendar.getInstance().getTimeInMillis();
System.out.println();
System.out.println(ms2-ms1);

}
這樣得一個測試程序,在設置N爲10000時能夠跑完,但在設置N爲20000以上就會報棧溢出得錯誤

java.lang.StackOverflowError
at com.scarlett.bowling.Misc.printN2(Misc.java:15)
at com.scarlett.bowling.Misc.printN2(Misc.java:16)
at com.scarlett.bowling.Misc.printN2(Misc.java:16)測試

相關文章
相關標籤/搜索