當我有樂趣,我發現了一個很奇怪的有關方法爲什麼這種方法永遠重複?
public class T {
static void m() {
System.out.println("M");
m1();
}
static void m1() {
System.out.println("MM");
m();
}
public static void main(String[] args) {
m();
}
}
有這個代碼也不例外,但它不重複永遠
「*在優化尾遞歸的JVM上,代碼將相當於一個無限循環*」 - 這很有趣,請您詳細解釋一下這個問題嗎?有什麼區別? – Maroun
@MarounMaroun:它將永遠運行,而不是用完堆棧空間。 – NPE
謝謝。爲什麼這稱爲優化?我認爲,用完堆棧是更好的選擇,因爲它會表明可能存在泄漏/錯誤。雖然它真的取決於程序員的「更好」。 – Maroun