这个程序有意思,运行是大家可能会有疑问,怎么会打印4了。 一遍的4。
即使我手快去 按 Ctrl + C 看到的打一个打印的结果依然是4 。
呵呵,于是我改造了下这个程序,方便大家看到程序执行过程:
代码如下:
class Demo
{
public static void main(String[] args) throws Exception
{
int x =0;
x= x+1;
main(x);
System.out.println(x);
}
public static void main(int y) throws Exception
{
Thread.sleep(1000); //让线程给个待1秒钟 , 这样可以看到第一次打印的结果了吧。
System.out.println("--1-- y = "+y);
int x= 2;
y = y +2 ;
Thread.sleep(1000);
System.out.println("--2-- y = "+y + " , x = "+x);
System.out.println(y);
main(x);
Thread.sleep(1000);
System.out.println("--3-- y = "+y + " , x = "+x);
System.out.println(x);
}
}
------------------
执行后结果为
从上面我们可以看出
循环的第二次就是4了,第一次的3 太快了,不可能让你看到的。
最后 , 这样的递归调用,最终肯定会死掉了。 |